假设我有以下要并行化的命令:
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
应该是你想要的。