如何使用gnu_parallel从文件列表中运行可执行文件?

时间:2019-04-30 11:19:44

标签: parallel-processing gnu-parallel

我目前正在学习使用gnu_paralle。我已经读过https://www.gnu.org/software/parallel/man.html#EXAMPLE:-Working-as-xargs--n1.-Argument-appending

以及其他一些资源,并且在语法学习方面取得了一些成功。

此刻,我有一个g ++编译的可执行文件,其中包含* argv。我目前通过在bash中执行以下操作来串行运行它:

cd ./ && find ./data | grep '\.data.format$' > datalist.tmp;

然后我按以下顺序阅读文件列表

while read LINE; do executable $LINE; done <datalist.tmp

现在。通过阅读gnu_parallel文档,我了解可以并行处理多个实例中的可执行文件。

请问有人在这里提供语法帮助吗?

2 个答案:

答案 0 :(得分:1)

尝试:

parallel -a datalist.tmp executable

或者:

parallel executable < datalist.tmp

不确定cd ./在做什么-它似乎将目录更改为当前目录,这似乎毫无意义,因为该进程已经在这里。

答案 1 :(得分:0)

谢谢。 我最终找到了以下解决方案,

while read LINE; do echo executable.exe $LINE ; done < data.tmp |paralell -j4