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


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

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

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

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

17 139

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 (grep). Его функции включают в себя регулярные выражения, универсальные параметры печати, магазины самых последних используемые пути и имеет функцию "контекст", которая очень хороша для просмотра исходного кода

ссылки: AstroGrep

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

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

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

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

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

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

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

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

обновление: агент 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 в 18 Мб вместо >100 МБ.

Если вы ищете консольную утилиту для этого, вы можете обратиться к этому 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/

Я попробовал его на babun (cygwin) и msys от git - работает сказочно. Он написан на perl, поэтому должен работать и в cmd.EXE-файл с помощью Perl установлен где-то на ОС.