Parallel processing GNU并行作业编号带多个展开式的前导零
我正在使用GNU Parallel创建python作业文件。我希望文件看起来像这样: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}
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