我想要运行一个任务,其中我指定了两个命令,它们将以不同参数交替的方式运行。例如:
1. exec --foo $inputfile1 $inputfile.outfile1
2. exec --bar $inputfile2 $inputfile.outfile2
3. exec --foo $inputfile3 $inputfile.outfile3
4. exec --bar $inputfile4 $inputfile.outfile4我也许可以通过配置两个并行命令或指定两个输入来逃避,但是我需要一些更通用的东西。这些文件将使用管道“查找”命令指定。
编辑:我对一个动作的命令如下所示:
find . -name 'somefiles*' -print0 | parallel -0 -j10 --verbose 'exec --foo {} {.}.outfile' 我只是不知道如何在两个命令之间交替执行此操作。
因此,基本上,我需要并行的-j10是使用foo参数运行其中的5个命令,并在单个文件集上运行其中5个带有bar参数的命令。我也许可以不让它交替,但是我想要并行处理它正好是5/5的分裂,这样我就不会用更多的foos或者更多的酒吧来结束了
发布于 2019-04-05 11:50:44
您可以首先将所有参数放入文件中,然后使用
parallel -a filename command
例如:
echo "--fullscreen $(find /tmp -name *MAY*.pdf) $(find /tmp -name *MAY*.pdf).out" >> /tmp/a
echo "--page-label=3 $(find /tmp -name *MAY*.pdf) $(find /tmp -name *JUNE*.pdf).out" >> /tmp/a
echo "--fullscreen $(find /tmp -name *MAY*.pdf) $(find /tmp -name *JULY*.pdf).out" >> /tmp/a 然后运行命令:
parallel -a /tmp/a evince发布于 2019-04-05 11:33:56
exec --foo $inputfile1 $inputfile.outfile1 & \
exec --bar $inputfile2 $inputfile.outfile2 & \
exec --foo $inputfile3 $inputfile.outfile3 & \
exec --bar $inputfile4 $inputfile.outfile4 &发布于 2019-05-29 21:35:00
这应该在--foo和--bar之间交替进行:
find . -name 'somefiles*' -print0 |
parallel -0 -j10 --verbose 'exec {= $_=seq() % 2 ? "--foo" : "--bar" =} {} {.}.outfile' https://unix.stackexchange.com/questions/510694
复制相似问题