Какие хорошие инструменты grep для Windows?[закрыто]
Решение
По рекомендациям в комментариях начал использовать грепвин и это фантастика и бесплатно.
(Я все еще фанат PowerGREP, но я им больше не пользуюсь.)
Я знаю, что вы уже упомянули об этом, но PowerGREP потрясающий.
Некоторые из моих любимых функций:
- Щелкните правой кнопкой мыши папку, чтобы запустить на ней PowerGREP.
- Используйте регулярные выражения или обычный текст.
- Укажите подстановочные знаки для файлов, которые нужно включить и исключить.
- Найти и заменить
- Режим предварительного просмотра удобен тем, что вы можете быть уверены, что заменяете то, что собираетесь.
Теперь я понимаю, что другие инструменты grep могут делать все вышеперечисленное.Просто PowerGREP объединяет все функции в очень простой в использовании графический интерфейс.
От тех же замечательных людей, которые подарили вам RegexBuddy и с которыми у меня нет ничего общего, кроме любви к их вещам. (Следует отметить, что RegexBuddy включает в себя базовую версию grep (для Windows) и стоит намного дешевле, чем PowerGREP.)
Дополнительные решения
Существующие команды Windows
- НАЙДСТР
- Select-String в PowerShell
Реализации команд Linux в Windows
Инструменты Grep с графическим интерфейсом
Дополнительные инструменты Grep
Другие советы
НАЙДСТР довольно мощный, поддерживает обычные выражения и имеет то преимущество, что уже присутствует на всех компьютерах с Windows.
c:\> FindStr /?
Searches for strings in files.
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
[/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
strings [[drive:][path]filename[ ...]]
/B Matches pattern if at the beginning of a line.
/E Matches pattern if at the end of a line.
/L Uses search strings literally.
/R Uses search strings as regular expressions.
/S Searches for matching files in the current directory and all
subdirectories.
/I Specifies that the search is not to be case-sensitive.
/X Prints lines that match exactly.
/V Prints only lines that do not contain a match.
/N Prints the line number before each line that matches.
/M Prints only the filename if a file contains a match.
/O Prints character offset before each matching line.
/P Skip files with non-printable characters.
/OFF[LINE] Do not skip files with offline attribute set.
/A:attr Specifies color attribute with two hex digits. See "color /?"
/F:file Reads file list from the specified file(/ stands for console).
/C:string Uses specified string as a literal search string.
/G:file Gets search strings from the specified file(/ stands for console).
/D:dir Search a semicolon delimited list of directories
strings Text to be searched for.
[drive:][path]filename
Specifies a file or files to search.
Use spaces to separate multiple search strings unless the argument is prefixed
with /C. For example, 'FINDSTR "hello there" x.y' searches for "hello" or
"there" in file x.y. 'FINDSTR /C:"hello there" x.y' searches for
"hello there" in file x.y.
Regular expression quick reference:
. Wildcard: any character
* Repeat: zero or more occurances of previous character or class
^ Line position: beginning of line
$ Line position: end of line
[class] Character class: any one character in set
[^class] Inverse class: any one character not in set
[x-y] Range: any characters within the specified range
\x Escape: literal use of metacharacter x
\<xyz Word position: beginning of word
xyz\> Word position: end of word
Пример использования: findstr text_to_find *
или для рекурсивного поиска findstr /s text_to_find *
Грепвин Бесплатный и с открытым исходным кодом (GPL)
Я использую grepWin, написанный одним из ребят из черепах.Работает ли работа в Windows...
Обновление за июль 2013 г.:
Еще один инструмент grep, который я теперь постоянно использую в Windows, — это АстроГрэп:
Его способность показывать мне больше, чем просто поиск строки (т.--context=NUM команды grep) бесценен.
И это быстро.Очень быстро, даже на старом компьютере с нетвердотельный накопитель диск (я знаю, раньше этот жёсткий диск делали с прядение диски, называемые тарелки, сумасшедший, да?)
Это бесплатно.
Он портативен (простой zip-архив для распаковки).
Исходный ответ, октябрь 2008 г.
Гну Греп все в порядке
Скачать его можно, например, здесь:(FTP-сайт сайта)
Все обычные варианты здесь.
Это в сочетании с глазеть и xargs (включает «найти», от ГнуВин32), и вы действительно можете писать сценарии так же, как в Unix!
См. также параметры, которые я использую для рекурсивного выполнения grep:
grep --include "*.xxx" -nRHI "my Text to grep" *
Командлет PowerShell Select-String работал нормально в версии 1.0, но значительно лучше для версии 2.0.Наличие PowerShell, встроенного в последние версии Windows, означает, что ваши навыки всегда пригодятся без предварительной установки чего-либо.
Новые параметры добавлены в Select-String:Командлет Select-String теперь поддерживает новые параметры, такие как:
- -Контекст:Это позволяет вам видеть строки до и после линии совпадения.
- -Все совпадения:который позволяет вам видеть все совпадения в строке (ранее вы могли видеть только первое совпадение в строке)
- -Не соответствует:Эквивалентно grep -v o
- -Кодировка:указать кодировку символов
Я считаю целесообразным создать функцию gcir
для Get-ChildItem -Recurse .
, с умными способностями для правильной передачи параметров и псевдонимом ss
для Select-String
.Итак, вы пишите:
gcir *.txt | SS Foo
Возможно, она не совсем относится к категории «grep», но в Windows я не смог обойтись без утилиты под названием АгентРансак.Это утилита «поиск в файлах» на основе графического интерфейса с поддержкой регулярных выражений.Это очень просто: щелкнуть правой кнопкой мыши по папке, нажать «Работать…» и найти файлы, содержащие то, что вы ищете.Очень быстро.
Прошло пару лет с тех пор, как вы задали вопрос, но я бы порекомендовал AstroGrep (http://astrogrep.sourceforge.net).
Это бесплатно, с открытым исходным кодом и простым интерфейсом.Я постоянно использую его для поиска кода.
PowerShell упоминался несколько раз.Вот как бы вы на самом деле использовали его по-гримасски:
Get-ChildItem -recurse -include *.txt | Select-String -CaseSensitive "SomeString"
Он рекурсивно ищет все текстовые файлы в текущем дереве каталогов на наличие SomeString
с учетом регистра.
Еще лучше, запустите это:
function pgrep { param([string]$search, [string]$inc) Get-ChildItem -recurse -include $inc | Select-String -CaseSensitive $search }
Затем выполните:
pgrep SomeStringToSearch *.txt
Затем, чтобы сделать это по-настоящему волшебно, добавьте псевдоним функции в свой Профиль PowerShell и вы можете почти притупить боль от отсутствия подходящих инструментов командной строки.
Cygwin включает grep.Все инструменты GNU и Unix прекрасно работают в Windows, если вы установите Cygwin.
подтверждение хорошо работает в Windows (если у вас есть Перл).Я считаю, что это лучше, чем grep для многих целей.
Git в Windows = grep в cmd.exe
Я только что узнал об установке Гит даст вам несколько основных команд Linux:cat, grep, scp и другие хорошие.
Установите, затем добавьте папку Git bin в свой PATH, и тогда ваш cmd.exe получит базовые функции Linux!
dnGREP — это инструмент grep с открытым исходным кодом для Windows.Он поддерживает ряд интересных функций, в том числе:
- Отменить для замены
- Возможность поиска, щелкнув правой кнопкой мыши по папке в проводнике.
- Расширенные параметры поиска, такие как фонетический поиск и XPath.
- Поиск внутри PDF-файлов, архивов и документов Word.
ИМХО, у него приятный и понятный интерфейс :)
Я всегда использую WinGREP, но у меня были проблемы с тем, что он не отпускал файлы.
Ну, помимо порта Windows GNU grep по адресу:
http://gnuwin32.sourceforge.net/
есть также grep Borland (очень похожий на GNU), доступный в бесплатном компиляторе Borland Free C++ (это бесплатная программа с инструментами командной строки).
Я успешно использовал Утилиты GNU для Win32 уже довольно давно, и у него есть хороший grep, а также Tail и другие удобные утилиты GNU для Win32.Я избегаю упакованной оболочки и просто использую исполняемые файлы прямо в командной строке Win32.
Входящий в комплект Tail также является неплохим небольшим приложением.
Я автор Аба Поиск и замена. Как и PowerGREP, он поддерживает регулярные выражения, сохранение шаблонов для дальнейшего использования, отмену замен, предварительный просмотр с подсветкой синтаксиса для HTML/CSS/JS/PHP, различные кодировки, включая UTF-8 и UTF-16.
По сравнению с PowerGREP графический интерфейс менее загромождён. Аба мгновенно начинает поиск, пока вы вводите шаблон. (инкрементный поиск), так что вы можете экспериментировать с регулярными выражениями и сразу видеть результаты.
Приглашаем вас попробовать мой инструмент;Буду рад ответить на любые вопросы.
Мне нужен был бесплатный инструмент grep для Windows, который позволял бы вам щелкнуть правой кнопкой мыши по папке и выполнить поиск по регулярному выражению для каждого файла - без какого-либо экрана.
Ниже приведено быстрое решение, основанное на findstr
упоминалось в предыдущем посте.
Создайте текстовый файл где-нибудь на жестком диске, где вы храните долговечные инструменты.Переименуйте в .bat или .cmd и вставьте в него следующее:
@echo off
set /p term="Search term> "
del %temp%\grepresult.txt
findstr /i /S /R /n /C:"%term%" "%~1\*.*" > "%temp%\grepresult.txt"
start notepad "%temp%\grepresult.txt"
Затем перейдите в папку SendTo.В Windows 7 перейдите к %APPDATA%\Microsoft\Windows\SendTo
и перетащите ярлык командного файла в эту папку SendTo.
Я переименовал ярлык в 1 GREP
чтобы сохранить его вверху списка SendTo.
Далее я хотел бы передать вывод findstr
через что-то, что будет генерировать html-файл, чтобы вы могли щелкнуть каждую строку вывода, чтобы открыть этот файл.Кроме того, я не думаю, что это работает с ярлыками папок.Мне придется проверить параметр и посмотреть, содержит ли он «.lnk».
UnxUtils тот, который я использую, у меня отлично работает...
Я использовал grep Borland в течение многих лет, но только что нашел шаблон, которому он не соответствует.Эх.Чего еще он не нашел за эти годы?Я написал простую замену текстового поиска, которая выполняет рекурсию, подобную grep — это FS.EXE в исходном коде forge.
греп не работает...
C:\DEV>GREP GAAPRNTR \SOURCE\TPALIB\*.PRG
<no results>
windows findstr работает...
C:\DEV>FINDSTR GAAPRNTR \SOURCE\TPALIB\*.PRG
\SOURCE\TPALIB\TPGAAUPD.PRG:ffSPOOL(cRPTFILE, MEM->GAAPRNTR, MEM->NETTYPE)
\SOURCE\TPALIB\TPPRINTR.PRG: AADD(mPRINTER, TPACONFG->GAAPRNTR)
\SOURCE\TPALIB\TPPRINTR.PRG: IF TRIM(TPACONFG->GAAPRNTR) <> TRIM(mPRINTER[2])
\SOURCE\TPALIB\TPPRINTR.PRG: REPLACE TPACONFG->GAAPRNTR WITH mPRINTER[2]
Мой выбор - инструмент с соответствующим названием Windows Греп:
- хороший простой графический интерфейс
- поддерживает поиск и замену
- может показать линии вокруг найденных линий
- может выполнять поиск по столбцам в файлах CSV и файлах фиксированной ширины.
Если вам нужен простой в использовании инструмент Windows Grep, я создал инструмент под названием P-Grep, который я предоставил для бесплатной загрузки со своего веб-сайта:www.adjutantit.com - главное меню, загрузки.
У Windows Grep возникли проблемы с большим количеством файлов, поэтому я написал свой собственный, который кажется более надежным.Вы можете выбрать папку, щелкнуть правой кнопкой мыши и отправить ее в P-Grep.Папка sendto не обновляется во время установки.
Еще один хороший выбор — МСИС.Он предоставляет вам множество других утилит GNU, которые позволят вам работать более продуктивно.
Строка выбора PowerShell похожа, у нее разные параметры и семантика, но она все еще мощная.
я использовал АЕК Греп ежедневно в течение многих лет.Единственное серьезное ограничение, которое я обнаружил, заключается в том, что пути к файлам ограничены 255 символами, и при обнаружении одного из них он останавливается, а не просто выдает предупреждение.Это раздражает, но случается не очень часто.
Я использую его в 64-битной Windows 7 Ultimate, поэтому его 64-битные учетные данные подходят.
Я использую его всегда, и, к счастью, он все еще доступен.Он очень быстрый и очень маленький.
Если ни одно из решений не является именно тем, что вам нужно, возможно, вы могли бы написать оболочку для FindStr, которая делает именно то, что вам нужно?
FindStr в любом случае довольно хорош, поэтому он должен просто создать графический интерфейс (если вы этого хотите) и предоставить несколько дополнительных функций (например, объединить его с Find, чтобы найти количество файлов, содержащих указанную строку [упомянутую выше]).
Это, конечно, предполагает, что у вас есть потребность, время и желание сделать это!
У меня есть Сигвин установлен на моем компьютере и поместил каталог bin Cygwin в мой путь к среде, чтобы Cygwin grep работал как обычно в командной строке, что решает все мои потребности в написании сценариев для grep на данный момент.