我在8个核心的Mac OS X上运行此命令:
for i in $(cat file1);do grep "$i" file2; done > output.txt
我的文件2我9百万行,所以需要很多时间。
是否可以使用所有核心更快地完成这项工作?
答案 0 :(得分:0)
您可以尝试使用此awk
:
awk 'FNR==NR {a[$0];next} {for (i in a) if ($0~i) print}' file1 file2 > output.txt
但我猜grep
发布的Paul R
会更快。
grep -f file1 file2 > output.txt
答案 1 :(得分:0)
基于http://www.gnu.org/software/parallel/man.html#EXAMPLE:-Grepping-n-lines-for-m-regular-expressions
parallel -k parallel --pipepart --block 100M -a file2 -k grep {} :::: file1