Инструменты для поиска строк внутри файлов без индексирования

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

Поиск «текущего проекта» Visual Studio невероятно медленный, и я не доверяю Windows Search.

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

Я запускаю Windows 2003 Server.

Windows Grep делает это очень хорошо.

Изменить: Windows Grep больше не поддерживается или не предоставляется разработчиком. Альтернативная ссылка для загрузки находится здесь: Windows Grep – alternate

Я поклонник диалогового windows « Найти в файлах » в Notepad ++ . Бонус : Это бесплатно.

введите описание изображения здесь

Существует также встроенная в Windows программа под названием findstr.exe с помощью которой вы можете выполнять поиск в файлах.

 >findstr /s "provider=sqloledb" *.cs 

Агент Ransack еще один хороший. Это быстро, бесплатно и имеет некоторые другие интересные функции, такие как интеграция с оболочкой.

Снимок экрана агента Ransack

Мне нравится AstroGrep. Результаты показаны в списке. Щелчок по строке показывает вам всю строку в виде предварительного просмотра, подчеркивающего удар. Кажется, это довольно быстро, худощаво и свободно. Протестировано в Windows 7, 8, 10 и Windows Server 2008 R2. Позволяет регулярные выражения.

Последний скриншот AstroGrep

AstroGrep – это утилита поиска файлов в формате Microsoft Windows (grep). Его функции include регулярные выражения, универсальные параметры печати, хранят самые последние используемые пути и имеют функцию «контекста», которая очень хороша для просмотра исходного кода

Ссылка: AstroGrep

Я большой поклонник grepWin . Он бесплатный, легкий и ansible из оболочки исследователя. Мне нравится, когда вам не нужно специально искать и запускать программу, чтобы что-то искать. Я могу просто щелкнуть правой кнопкой мыши в проводнике и поднять его.

SeekFast очень удобен для поиска текста в файлах – текстовых файлов, MS Word, Excel, OpenOffice и других. У него есть бесплатная версия.

FileSeek . Это быстро, и это бесплатно. Он может находить текстовые строки или соответствовать регулярным выражениям.

Поиск Visual Studio в папках, безусловно, самый быстрый, который я нашел.

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

VS2010 на обычном жестком диске, без SSD, занимает 1 минуту, чтобы искать 20-гигабайтную папку с 26k-файлами, исходный код и бинарные файлы перепутаны. Просматриваются файлы 15k – остальные, скорее всего, пропускаются из-за двоичных файлов. Последующие поиски в той же папке имеют порядок секунд (пока материал не будет выведен из кеша).

Следующий ближайший я нашел для той же папки grepWin. Около 3 минут. Я исключил файлы размером более 2000 КБ (по умолчанию). Параметр «Включить двоичные файлы», кажется, ничего не делает с точки зрения ускорения поиска, похоже, что бинарные файлы все еще затронуты (ошибка?), Но они не отображаются в результатах поиска. Последующие поисковые запросы выполняют те же 3 минуты – не могут использовать кеш жесткого диска. Если я ограничиваю файлы размером менее 200 тыс., Первоначальный поиск составляет 2,5 мин, а последующие поисковые запросы – порядка секунд, примерно так же, как VS – в кеше.

Агент Ransack и FileSeek очень медленны в этой папке, около 20 минут, из-за поиска по всему, включая гигантские многогигабайтные двоичные файлы. По данным Монитора ресурсов они ищут около 10-20 МБ в секунду.

ОБНОВЛЕНИЕ: агент Ransack можно настроить на поиск файлов определенных размеров, а с помощью обрезания <200 КБ это 1: 15 минут для нового поиска и 5 секунд для последующих поисков. Быстрее, чем grepWin и так же быстро, как VS. На самом деле очень приятно, если вы хотите сохранить несколько запросов в вкладках, и вы не хотите загрязнять список недавно найденных списков VS, и вы хотите сохранить возможность поиска двоичных файлов, которые VS, похоже, не хочет делать. Агент Ransack также создает запись контекстного меню проводника, поэтому его легко запустить из папки. То же, что и grepWin, но более удобный интерфейс и быстрее.

Моя новая настройка поиска – агент Ransack для содержимого и все для имен файлов (потрясающий инструмент, мгновенные результаты!).

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

Вы можете установить cygwin (требуется некоторое время) и использовать grep -R.

Если вы не хотите устанавливать инструменты Non-Microsoft, загрузите STRINGS.EXE из MicroSoft Sysinternals и выполните процедуру, подобную этой:

 @echo off if '%1' == '' goto NOPARAM if '%2' == '' goto NOPARAM if not exist %1 goto NOFOLDER echo ------------------------------------------ echo - %1 : folder echo - %2 : string to be searched in the folder echo - PLEASE WAIT FOR THE RESULTS ... strings -s %1\* | findstr /i %2 > grep.txt notepad.exe grep.txt goto END :NOPARAM rem - input command not correct echo ==================================== echo Usage of GREP.CMD: echo Grep "SearchFolder" SearchString echo Please specify all parameters echo ==================================== goto END :NOFOLDER echo Folder %1 does not exist goto END :END rem - exit 

Я обычно использую grep или find from unxutils . Это отлично работает на ms-windows.

FileSearchy . Это быстро и бесплатно. Он имеет индексирование, но только для имен файлов, а не для содержимого.

Я бы порекомендовал GOW над cygwin, так как он намного легче, но по-прежнему включает grep, а также еще 130 команд для командной строки nix в 18MB вместо> 100MB.

Если вы ищете консольную утилиту для этого, вы можете обратиться к этому URL-адресу и создать его для себя.

http://www.dotnetlogic.net/articles/search-for-filename-or-text-inside-other-files-in-directory-using-c/

то, что есть, – это найти список текста поиска в папке и сопоставить возвращаемый файл с таким же именем, если он также содержит текст

Я могу порекомендовать ack – программу командной строки с корнями linux, которая, к счастью, отлично работает и в Windows. Это быстрее, чем grep, он игнорирует каталоги git / subversion и двоичные файлы, а результат более понятен. И набрав ack на 25% быстрее, чем grep;)

http://beyondgrep.com/

Я пробовал это на бабуна (cygwin) и msys из git – работает сказочно. Это написано в perl, поэтому должно работать и в cmd.exe с perl, установленным где-то на ОС.

  • Каков самый быстрый способ чтения текстового файла по очереди?
  • Как переписать только часть файла в c ++
  • Как добавить текст в существующий файл в Java
  • Удалить определенную строку из текстового файла?
  • Java BufferedReader вернется к началу текстового файла?
  • Давайте будем гением компьютера.