Запустите fgrep многоядерный Mac OS X
Я запускаю эту команду на моем Mac OS X на 8 ядрах:
for i in $(cat file1);do grep "$i" file2; done > output.txt
Мой файл2 у меня 9 миллионов строк, так что это занимает много времени.
Можно ли использовать все ядра, чтобы сделать эту работу быстрее?
2 ответа
Основано на http://www.gnu.org/software/parallel/man.html
parallel -k parallel --pipepart --block 100M -a file2 -k grep {} :::: file1
Вы можете попробовать это awk
вместо:
awk 'FNR==NR {a[$0];next} {for (i in a) if ($0~i) print}' file1 file2 > output.txt
Но grep
posted by Paul R
would be faster I guess.
grep -f file1 file2 > output.txt