我有一个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_*
(我没有测试过。)