В зависимости от ваших данных, производительности вашего диска и вашего процессора, вы можете улучшить работу с GNU Parallel . Если вы используете параметр --pipepart
, он также разделит ваш файл объемом 190 ГБ для вас без создания временных файлов.
Итак, я создал файл 5 ГБ с 100000000 строками, используя Perl, например:
perl -E 'for($i=0;$i<100000000;$i++){say "Line $i,field2,field3,junk,junk,junk",int rand 1000000}' > BigBoy.txt
Первые 3 строки выглядят так:
Line 0,field2,field3,junk,junk,junk514649
Line 1,field2,field3,junk,junk,junk257773
Line 2,field2,field3,junk,junk,junk203414
Затем я рассчитал grep
на 58 секунд для этого файла, который выдал 88 строк вывода:
time grep "junk426888$" BigBoy.txt
Затем я рассчитал GNU Parallel на 11 секунд для того же выхода:
time parallel -a BigBoy.txt --pipepart --block -1 grep "junk426888$"