2014-03-05 35 views
4

我想用awk使用parallel命令作为shell脚本来处理如此的文本文件,但一直无法将它输出到不同的文件中gnu parallel:将每个作业输出到不同的文件

如果我尝试:

seq 10 | parallel awk \''{ if ($5 > 0.4) print $2}'\' file{}.txt > file{}.out 

它输出到文件file{}.out而不是file1.outfile2.out

的教程和手册页还提示,我可以用--files,但它只是打印到stdout

seq 10 | parallel awk \''{ if ($5 > 0.4) print $2}'\' file{}.txt --files file{}.out 

回答

4

事实证明,我需要引用了重定向,因为它正在处理的parallel外:

seq 10 | parallel awk \''{...}'\' file{}.txt ">" file{}.out 
0

另一种方法是引进全双引号内并行命令:

seq 10 | parallel " awk command > file{}.out "

虽然,有时是有用的重定向输出到文件,也是标准输出。你可以使用tee来实现。在这种情况下,所使用的命令可能是:

seq 10 | parallel " awk command | tee file{}.out "

0

当我并行有没有管支持的脚本,该解决方案在这里并不适用于我,所以我开了一个新的线程here解决了这个问题。

我希望它能帮助别人到达这里。

相关问题