У меня есть текстовый файл (около 1,5 гигабайт), который я хочу найти вхождения определенных названий.В моем списке около 10 миллионов заголовков.
Очевидно, что не каждый заголовок в списке будет существовать в текстовом файле.Это нормально.Мне просто нужно знать, какие заголовки существуют в тексте.
Теперь, если бы это была всего пара сотен заголовков, я бы использовал fgrep
и велел бы ему читать строки поиска из файла (то есть fgrep -f patternlist.txt bigtextfile.txt
).
Но будет ли fgrep
подавляться таким большим количеством данных?
Немного работы, чтобы превратить мой список заголовков и текстовый файл в форму, которую я мог бы использовать сfgrep
, поэтому я хотел бы получить некоторое представление о том, сработает ли это, прежде чем я приступлю к этим усилиям.
Другой вариант - разделить список заголовков на несколько файлов и запустить fgrep
один раз длякаждый подсписок.Это не сумасшествие, при условии, что fgrep
может обрабатывать достаточно большое количество строк поиска.Если он может справиться с 1 миллионом, это не сложно.Если он не может обработать 100 000 (требуется более 100 отдельных прогонов), тогда это менее привлекательный вариант.
Итак, у кого-нибудь есть опыт использования fgrep
для поиска очень большого числа строк?Если нет, есть ли какая-нибудь другая программа?Я мог бы написать свой день или два, но смогу ли я избежать работы.,.