使用GNU parallel在并行的多个文件中的多行上执行bash脚本

时间:2017-06-01 07:45:50

标签: gnu-parallel

我想使用GNU parallel来解决以下问题:

我有几个文件,每个文件有几行文字。我想了解如何在每个文件的每行文本和并行的每个文件上运行脚本(code.sh)。我应该能够将每个输入文件上的操作输出写出到具有不同扩展名的输出文件。

似乎这是多个并行命令在所有文件上并行运行,然后为每个文件中的所有行并行运行的情况。

这是我用的: ls mydata_ * | parallel -j + 0'cat {} | parallel -I ./explore-bash.sh> {。}。出来'

我不知道如何使用GNU parallel执行此操作。请帮忙。

1 个答案:

答案 0 :(得分:1)

您的解决方案似乎合理。你只需要删除-I:

ls mydata_* | parallel -j+0 'cat {} | parallel ./explore-bash.sh > {.}.out'

根据您的设置,这可能会更快,因为它只会运行n个作业,而上述解决方案将并行运行n * n个作业(n =核心数):

ls mydata_* | parallel -j1 'cat {} | parallel ./explore-bash.sh > {.}.out'