Я ищу инструмент, который будет быстрее, чем grep, может быть многопоточный grep, или что-то подобное ... Я смотрел на группу индексаторов, но я не продал, что мне нужен индекс ...
У меня есть около 100 миллионов текстовых файлов, которые мне нужно grep для точных совпадений строк, при нахождении совпадения строк мне нужно имя файла, где совпадение было найдено.
ie: grep -r 'exact match' > filepaths.log
Это около 4 ТБ данных, и я начал свой первый поиск 6 дней назад, и grep все еще работает. У меня есть еще дюжина поисков, и я не могу ждать 2 месяца, чтобы получить все эти имена файлов =]
Я рассмотрел следующее, однако, я не думаю, что мне нужны все навороты, с которыми идут эти индексаторы, мне просто нужно имя файла, где произошло совпадение ...
- DTSearch
- Терьер
- Lucene
- Xapian
- отдача
- сфинкс
и после долгих часов чтения обо всех этих двигателях у меня кружится голова, и мне бы хотелось, чтобы у меня был многопоточный grep lol, любые идеи и / или предложения очень ценятся!
PS: я использую CentOS 6.5
РЕДАКТИРОВАТЬ: Поиск многопоточных grep возвращает несколько элементов, мой вопрос, является ли многопоточный grep лучшим вариантом для того, что я делаю?
РЕДАКТИРОВАТЬ 2: После некоторой настройки, это то, что я придумал, и это идет намного быстрее, чем обычный grep, я все еще хотел бы, чтобы это было быстрее, хотя ... Я наблюдаю за моим диском в ожидании, и он еще не собирается, я могу сделать еще некоторые изменения, и def по-прежнему заинтересован в любых предложениях =]
find . -type f -print0 | xargs -0 -n10 -P4 grep -m 1 -H -l 'search string'