如何将Parallel Grep的输出附加到文件中?

我有一个500 MB的文件,和一个20MB的模式文件。 由于花费了太多的时间从500万行文件中挑出120万个模式,我将模式文件分成了100个部分。 我尝试运行Grep并行与多个模式如下。

for pat1 in vailtar_* do parallel --block 75M --pipe grep $pat1 infile >> outfile done; 

但是我不能得到输出到一个文件。 我尝试没有块选项,也如下 –

 cat infile | parallel --block 75M --pipe grep $pat1 >> outfile < infile parallel --block 75M --pipe grep $pat1 >> outfile 

是否有反平行grep将输出附加到文件? 提前致谢。

也许这样会更好?

 for pat1 in vailtar_* do parallel --block 75M --pipe grep -f $pat1 < infile done > outfile 

这将把所有的输出从for循环中的所有内容,并把它放在outfile

顺便说一句,我认为你的意思是使用infile作为标准输入,而不是作为grep的一个参数,我想你的意思是-f $pat ,而不仅仅是文件名作为模式。 我已经解决了我的版本中的两个问题。


但是,如果我试图解决这个问题,我可能会这样做:

 parallel 'grep -f {} infile' ::: vailtar_* 

(我没有测试过。)