1

Я бы хотел выполнить поиск так, чтобы:

1) Он может искать в тексте большое количество PDF-файлов. В частности, я хочу искать в каталоге с вложенными каталогами несколько уровней, и они в основном PDF-файлы. Есть около 50K файлов (примерно 10-50 страниц каждый), поэтому производительность имеет решающее значение.

2) Когда он находит результат, он должен возвращать совпадения плюс контекст (например, grep -C 2), а не только имена файлов, содержащих запрос.

Я полагаю, что это может быть проще с командной строкой, но я не против использования программы, если это проще. Мне не нужны подстановочные знаки или возможности регулярных выражений, но он должен поддерживать строки как буквальную фразу ("не").

Этот скрипт похож на тот, который мне нужен, но он использует grep для получения результатов, а grep не понимает pdf (и я не хочу конвертировать каждый pdf в текст для каждого поиска).

Есть ли способ сделать это? Благодарю.

1 ответ1

1

Как пользователь Linux, это два варианта, которые приходят мне в голову:

  • Recoll - мощный инструмент для поиска на рабочем столе с графическим интерфейсом и интерфейсом командной строки. Показывает результаты поиска в их контексте. Детализация контекста настраивается (Параметры → Параметры GUI → Параметры поиска). Сравнимо с тем, что требует индексации перед выполнением поиска.

    This Используйте это для больших библиотек документов

  • pdfgrep - PDF эквивалентный инструменту CLI grep. Можно также показать результаты в их контексте. Детализация контекста также настраивается (--context <number of words>). Работает без предварительной сборки индекса. На несколько порядков медленнее, чем Recoll и Spotlight для больших библиотек документов.

    This Используйте это для быстрого поиска в небольших коллекциях

Оба доступны через macports.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .