Полнотекстовая индексация
Существуют такие инструменты, как recoll, swish-e и sphinx, но вам нужно проверить, могут ли они поддерживать необходимый вам критерий поиска.
Recoll
Recoll - это личный инструмент полнотекстового поиска для Unix/Linux.
Swish-е
Swish-e - это быстрая, гибкая и бесплатная система с открытым исходным кодом для индексации коллекций веб-страниц или других файлов.
сфинкс
Sphinx позволяет вам быстро и легко либо выполнять пакетный индекс и искать данные, хранящиеся в базе данных SQL, хранилище NoSQL, либо просто файлы.
Grep
Я удивлен, что grep так медленен, как вы описываете, можете ли вы уменьшить количество файлов, которые ищут? Например, когда мне нужно искать только в исходных файлах один исполняемый файл (из многих в проекте), я передаю имена grep из команды, в которой перечислены исходные файлы для этой программы:
grep expression `sources myprogram`
sources
- это программа, специфичная для моей среды разработки, но вы можете иметь (или иметь возможность создать) что-то эквивалентное.
Я предполагаю, что вы пробовали очевидные методы, такие как
find /foo/myproject -name "*.c" -exec fgrep -l searchtext
Я прочитал предположение, что опция -P
текущего grep
может значительно ускорить поиск.