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

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

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

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

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

17 ответов


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

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


Я поклонник Найти В Файлах диалог Блокнот++. бонус: это бесплатно.

enter image description here


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

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

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

Agent Ransack screenshot


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

Latest AstroGrep Screenshot

AstroGrep является утилита поиска файлов Microsoft Windows GUI (grep). Свои особенности включают регулярные выражения, разносторонние варианты печатания, магазины самые последние используемые пути и имеет функцию "контекст", которая очень хороша для просмотра исходного кода

ссылки: AstroGrep


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


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


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


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

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

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

ближайший я нашел в той же папке был grepWin. Около 3 минут. Я исключил файлы размером больше 2000KB (по умолчанию). Настройка "включить двоичные файлы", похоже, ничего не делает с точки зрения ускорения поиска, похоже, что двоичные файлы все еще затронуты (ошибка?), но они не отображаются в результатах поиска. Последующий все поиски занимают одни и те же 3 минуты - невозможно воспользоваться кешем жесткого диска. Если я ограничиваюсь файлами меньше 200k, начальный поиск составляет 2,5 минуты, а последующие поиски-порядка секунд, примерно так же быстро, как VS - в кэше.

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

UPDATE: Agent Ransack может быть установлен для поиска файлов определенных размеров, и с помощью

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


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


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


Если вы не хотите устанавливать инструменты, отличные от Microsoft, загрузите строки.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 или найти из unxutils. Это отлично работает на ms-windows.


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


Я бы рекомендовал ГОУ над cygwin, так как он намного легче, но по-прежнему включает grep, а также еще 130 или около того *Nix командной строки utils в 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 установлен где-то на ОС.