Инструменты для поиска строк внутри файлов без индексации [закрыто]
Мне нужно изменить некоторые строки подключения в невероятно старом устаревшем приложении, и программисты, которые сделали это, подумали, что было бы отличной идеей оштукатурить все приложение с помощью строк подключения повсюду.
Поиск "текущего проекта" Visual Studio невероятно медленный, и я не доверяю поиску Windows.
Итак,что такое лучший бесплатный, неиндексированный инструмент поиска текста? Все, что он должен сделать, это вернуть список с файлами, которые содержат нужные строка внутри папки и ее вложенных папок.
Я запускаю Windows 2003 Server.
17 ответов:
Windows Grep это очень хорошо.
Edit: Windows Grep больше не поддерживается и не предоставляется разработчиком. Альтернативная ссылка для скачивания находится здесь: Windows Grep-alternate
Я поклонник Найти В Файлах диалог Блокнот++. бонус: это бесплатно.
существует также встроенная программа Windows под названием
findstr.exe
С помощью которого вы можете искать в файлах.>findstr /s "provider=sqloledb" *.cs
Агент Обшарить еще один хороший друг. Это быстро, бесплатно и некоторые другие приятные функции, такие как интеграция в оболочку.
Мне нравится AstroGrep. Результаты отображаются в виде списка. Щелчок по строке показывает вам всю строку в качестве предварительного просмотра, выделяя хит. Он кажется довольно быстрым, худым и свободным. Протестировано на Windows 7, 8, 10 и Windows Server 2008 R2. Позволяет использовать регулярные выражения.
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 действительно хорошо для такого рода вещей. Вы можете использовать его бесплатно, но вы получите предупреждающее сообщение с просьбой купить его. Кроме того, это отличный инструмент во всем.
Если вы не хотите устанавливать инструменты, отличные от 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-адресу и создать его для себя.
Что делает, это найти список текста поиска в папке и вернуть файл, соответствующий с тем же именем также возвращает, если какой-то файл содержит текст также
Я могу порекомендовать ack - программа командной строки с корнями linux, которая, к счастью, отлично работает и на Windows. Это быстрее, чем grep, он игнорирует каталоги git/subversion и двоичные файлы, а вывод более понятен. И набрав ack на 25% быстрее, чем grep;)
Я попробовал его на babun (cygwin) и msys от git - работает сказочно. Он написан на perl, поэтому должен работать и в cmd.EXE-файл с помощью Perl установлен где-то на ОС.