Текстовый поиск по дереву каталогов - без необходимости предварительного создания какого-либо индекса

Я ищу бесплатную программу Windows для поиска в дереве каталогов и поиска всех файлов, содержащих заданную строку.

Должен иметь :
- Windows
- Бесплатно
- НЕ должен создавать или полагаться на какой-либо индекс или базу данных другого типа
- для каждого совпадающего файла показывать совпадающую строку (строки)
- искать текстовые файлы

Приятно иметь :
- Linux
- показывать X строк до/после совпадения
- поиск в архивах (как минимум ZIP, 7Z и RAR) - поиск файлов PDF
- поиск файлов MS Word (и Excel, и PowerPoint)
- поиск Open/Libre Office файлы
- количество совпадающих файлов/строк
- использовать подстановочные знаки*и?в строке поиска
- указать строку как регулярное выражение
- щелкнуть найденный файл, чтобы открыть его
- указать размеры файла, даты и т
. - повторить поиск новой строки в текущих результатах поиска

Обратите внимание, что Agent Ransack делает многое из этого, но некоторые функции, которые «приятно иметь», недоступны в бесплатной версии (и не имеют версии для Linux). Отмечает ли что-нибудь еще больше пунктов?


[Обновление] Ultra File Search также выглядит хорошо


[Update++] Мне очень, очень , очень нравится SearchMonkey в Linux, так что всем, кто ищет решение только для Linux, стоит попробовать. Увы, версия для Windows — хотя она предлагает подстановочные знаки в именах файлов и показывает панель предварительного просмотра с совпадающими строками — не позволяет мне указать, сколько строк вокруг совпадения я вижу, и не позволяет выполнять поиск с помощью регулярных выражений :-(

Но AstroGrep отлично подходит для Windows (возможно, даже с несколькими небольшими дополнительными функциями). Итак, это по одному для каждого o/s; увы, не тот.

Это мое личное решение. YMMV

Существуют различные инструменты, которые не совсем отвечают всем вашим требованиям. Вы пытались связаться с разработчиками этих инструментов и попросить их добавить нужные вам функции?

Ответы (2)

НАЙТИСТР

Командный терминал Windows имеет FINDSTRкоманду, которую вы можете использовать для поиска строки в наборе файлов. Есть некоторая документация , к которой я регулярно обращаюсь, когда мне нужно ее использовать.

Соответствие критериям:

Поскольку это из MS-DOS, я предполагаю , что он не использует и не создает индекс; это, конечно, не становится быстрее, если я запускаю один и тот же поиск снова и снова.

Он обрабатывает подстановочные знаки и разновидность регулярных выражений.

Он может напечатать номер строки и строку, в которой он нашел строку. Он также может просто распечатать имена файлов, в которых была найдена строка.

В Linux есть grep, который делает то же самое.

Критерии неудач:

Он не может выполнять поиск в архивах сам по себе, хотя его можно использовать в пакетном сценарии, который при обнаружении извлекает архивы во временный каталог и очищает их после себя.

Я не думаю, что он может искать документы MS Word или PDF; он предназначен для обычного текста, а не для двоичных файлов.

У него нет возможности отображать размеры файлов и даты создания/изменения, но вы можете направить его вывод в текстовый файл и использовать его для получения размеров и дат файлов с помощью другой программы командной строки.

Бонусные функции, о которых вы не просили, но которые могут вам понравиться:

Он может использовать файл, чтобы указать, в каких файлах/каталогах искать.

Он может использовать файл для указания нескольких строк поиска.

Я редко работаю в Windows, но иногда приходится. В этих случаях я часто использовал File Commander — клон Norton Commander, доступный для разных платформ:

File Commander — это ортодоксальный файловый менеджер текстового режима для операционных систем Microsoft Windows, OS/2 и Linux […]. Это улучшенный клон Norton Commander […]. Функциональность была значительно расширена за счет таких функций, как поддержка регулярных выражений при выборе файлов, мощный редактор с возможностями отмены/возврата, поддержка сети и т. д.

Вы можете найти более подробную информацию о нем и загрузить его с его официальной домашней страницы .

Итак, насколько он соответствует вашим требованиям?

  • Окна: Да.
  • Бесплатно: Условно-бесплатное ПО. Я никогда ничего не платил за те несколько раз, что использовал его.
  • НЕ ДОЛЖЕН создавать или полагаться на какой-либо индекс или базу данных другого типа: Нет, не делает.
  • для каждого совпадающего файла покажите совпадающую(ие) строку(и): Это вопрос определения. Он выдает вам список совпадающих файлов и предлагает открыть его в редакторе или просмотрщике — и там перескакивает на совпадающую строку.
  • поиск текстовых файлов: средство поиска файлов, сочетающее фильтры имен файлов с подстановочными знаками и сканирование содержимого файлов. Позволяет искать/заменять текст в соответствующих файлах.

А как насчет ваших приятностей?

  • Линукс: Да.
  • показать X строк до/после совпадения: Ну, показывает весь файл и позволяет «прыгать» — так что да.
  • использовать подстановочные знаки * и ? в строке поиска: Косвенно (используйте RegEx).
  • указать строку как регулярное выражение: Да.
  • щелкните найденный файл, чтобы открыть его: Ну, нет. Это текстовое приложение, поэтому никаких кликов. Вместо этого нажмите Enter, чтобы перейти к файлу, F3чтобы открыть его в просмотрщике, F4для редактора :)

Про другие точки сказать не могу, так как давно не пользовался. В Linux я предпочитаю Midnight Commander (похожий внешний вид) — и даже в Windows я использовал его через Cygwin ( MobaXterm упрощает эту задачу).

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

Спасибо, Изий (+1). Увы, я не буду присуждать ответ, так как он падает на «для каждого совпадающего файла покажите совпадающую строку (строки)», что является «обязательным». Я хочу видеть все совпадающие строки в обзоре одновременно. Кстати, для Windows я рекомендую Total Commander ( ghisler.com ), за который я заплатил условно-бесплатную версию около 20 лет назад (впервые я заплатил). Я не нашел ничего подобного ни в Windows, ни в Linux. В Linux я использую Gnome Commander или Tux Commander, но они не совпадают — знаете ли вы лучший клон Norton Commander?
Я так и думал, когда дошел до этого момента, но поскольку вы не были на 100% уверены в этом со своим вопросом… :) Что касается ТС: я предпочитаю текстовое управление файлами, даже на Windoze :)
FAR Manager — это более часто поддерживаемая ответвление Norton Commander (тот же источник File Commander). Он имеет аналогичные функции в дополнение к поддержке мыши и открытому исходному коду с лицензией BSD.
Правильно, @Timmy (несколько лет назад это было условно-бесплатное ПО). Я не упомянул об этом, так как он недоступен для Linux. Еще одно замечание: если Linux не является обязательным требованием, это хороший выбор, к тому же он обладает широкими возможностями расширения благодаря множеству плагинов. Я тоже этим пользовался много лет назад :)
Здесь мы подходим к теме, но если кто-то хочет очень хороший и FOSS, что, по-видимому, делает его также бесплатным для коммерческого использования, двухпанельный файловый менеджер с открытым исходным кодом, то я настоятельно рекомендую Double Commander.
Который, забыл сказать, почти семь лет назад (как летит время :-), является кроссплатформенным, с открытым исходным кодом и бесплатным, в том числе для коммерческого использования.