GNU 并行作业编号前导零,具有多个扩展

GNU Parallel job number leading zeros with multiple expansions

我正在使用 GNU Parallel 创建一个包含 python 个作业的文件。我希望文件看起来像这样:

job_num, args
001, -a 1 -b 2
002, -a 1 -b 4
003, -a 2 -b 2
004, -a 2 -b 4

想法是每组 args 都可以在文件生成时配置,同时具有前导零作业编号。

这是我尝试过的一件事:

parallel --rpl '{0#} $_=sprintf("%02d",$job->seq())' echo {0#}, -a {1} -b {2} ::: 1 2 ::: 2 4

这导致:

01 01, -a 1 -b 2
02 02, -a 1 -b 4
03 03, -a 2 -b 2
04 04, -a 2 -b 4

没想到的结果是双套工号(加上3个扩展,结果是3个工号)。关于如何使我正在尝试的工作发挥作用有什么想法吗?

在版本 20170322 和 20210222 上测试。

相关帖子(每篇内容都试过了):

像这样:

parallel --rpl '{0#} 1 $f=1+int((log(total_jobs())/log(10))); $_=sprintf("%0${f}d",seq())' echo '{0#}, -a {1} -b {2}' ::: {1..9} ::: {1..12}

1+int((log(total_jobs())/log(10))) 以数字计算 total_jobs() 的宽度。