GNU Parallel:重定向管道标准输入,就好像它是一个文件一样

GNU Parallel:重定向管道标准输入,就好像它是一个文件一样

假设我有以下要并行化的命令:

my_command --file <(my | pipeline)

现在,我想在特定的块中并行化:

my | pipeline | parallel --spreadstdin my_command --file <(parallel's stdin)

我将如何使用 gnu parallel 完成此重定向?

答案1

如果我理解正确的话,parallel --spreadstdin会将输入块发送到它运行的进程的标准输入,因此您想要my_command读取的不是 Parallel 的标准输入,而是它自己的标准输入。

如果my_command不默认读取标准输入,您通常可以使用/dev/stdin文件名来代替文件名,它解析为与“原始”标准输入相同的文件/管道。

所以

my | pipeline | parallel --spreadstdin my_command --file /dev/stdin

应该是你想要的。

相关内容