Какие хорошие инструменты grep для Windows?[закрыто]

StackOverflow https://stackoverflow.com/questions/87350

  •  01-07-2019
  •  | 
  •  

Вопрос

Любые рекомендации по grep инструменты для Windows?В идеале те, которые могут использовать 64-битную ОС.

я знаю Сигвин, конечно, и тоже нашли PowerGREP, но мне интересно, есть ли там какие-нибудь скрытые сокровища?

Это было полезно?

Решение

По рекомендациям в комментариях начал использовать грепвин и это фантастика и бесплатно.


(Я все еще фанат PowerGREP, но я им больше не пользуюсь.)

Я знаю, что вы уже упомянули об этом, но PowerGREP потрясающий.

Некоторые из моих любимых функций:

  • Щелкните правой кнопкой мыши папку, чтобы запустить на ней PowerGREP.
  • Используйте регулярные выражения или обычный текст.
  • Укажите подстановочные знаки для файлов, которые нужно включить и исключить.
  • Найти и заменить
  • Режим предварительного просмотра удобен тем, что вы можете быть уверены, что заменяете то, что собираетесь.

Теперь я понимаю, что другие инструменты grep могут делать все вышеперечисленное.Просто PowerGREP объединяет все функции в очень простой в использовании графический интерфейс.

От тех же замечательных людей, которые подарили вам RegexBuddy и с которыми у меня нет ничего общего, кроме любви к их вещам. (Следует отметить, что RegexBuddy включает в себя базовую версию grep (для Windows) и стоит намного дешевле, чем PowerGREP.)


Дополнительные решения

Существующие команды Windows

Реализации команд 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)

enter image description hereЯ использую grepWin, написанный одним из ребят из черепах.Работает ли работа в Windows...

http://stefanstools.sourceforge.net/grepWin.html

Обновление за июль 2013 г.:

Еще один инструмент grep, который я теперь постоянно использую в Windows, — это АстроГрэп:

AstroGrep awesomeness

Его способность показывать мне больше, чем просто поиск строки (т.--context=NUM команды grep) бесценен.
И это быстро.Очень быстро, даже на старом компьютере с нетвердотельный накопитель диск (я знаю, раньше этот жёсткий диск делали с прядение диски, называемые тарелки, сумасшедший, да?)

Это бесплатно.
Он портативен (простой zip-архив для распаковки).


Исходный ответ, октябрь 2008 г.

alt textГну Греп все в порядке

Скачать его можно, например, здесь:(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.

http://www.cygwin.com/

подтверждение хорошо работает в Windows (если у вас есть Перл).Я считаю, что это лучше, чем grep для многих целей.

Git в Windows = grep в cmd.exe

Я только что узнал об установке Гит даст вам несколько основных команд Linux:cat, grep, scp и другие хорошие.

Установите, затем добавьте папку Git bin в свой PATH, и тогда ваш cmd.exe получит базовые функции Linux!

http://code.google.com/p/msysgit/downloads/list?can=3

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-битные учетные данные подходят.

ГРЭП для Windows

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

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

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

Это, конечно, предполагает, что у вас есть потребность, время и желание сделать это!

У меня есть Сигвин установлен на моем компьютере и поместил каталог bin Cygwin в мой путь к среде, чтобы Cygwin grep работал как обычно в командной строке, что решает все мои потребности в написании сценариев для grep на данный момент.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top