Parallel processing GNU并行作业编号带多个展开式的前导零

Parallel processing GNU并行作业编号带多个展开式的前导零,parallel-processing,gnu-parallel,Parallel Processing,Gnu Parallel,我正在使用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 其思想是,可以在文件生成时配置每组参数,同时使前导的作业编号为零 我试过一件事: parallel --rpl '{0#} $_=sprintf("%02d",$job->seq())' echo {0#}, -a {1} -b {2}

我正在使用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
其思想是,可以在文件生成时配置每组参数,同时使前导的作业编号为零

我试过一件事:

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()
      的宽度。

      我不知道答案,但解决方法可能是
      parallel'printf-vz”%03d{};echo$z-a{1}-b{2}'::12::24
      或更简单的
      并行“printf”%03d,-a{1}-b{2}\n“{35;}”::12:::24