grep исходный код для windows
Grep for Windows
Grep: print lines matching a pattern
Version
Description
Grep searches one or more input files for lines containing a match to a specified pattern. By default, grep prints the matching lines.
Homepage
Download
If you download the Setup program of the package, any requirements for running applications, such as dynamic link libraries (DLL’s) from the dependencies as listed below under Requirements, are already included. If you download the package as Zip files, then you must download and install the dependencies zip file yourself. Developer files (header files and libraries) from other packages are however not included; so if you wish to develop your own applications, you must separately install the required packages.
Description | Download | Size | Last change | Md5sum | ||||
---|---|---|---|---|---|---|---|---|
• Complete package, except sources | Setup | 1899231 | 13 February 2009 | 77a21eb688da4cd7746ce7e92af8f4da | ||||
• Sources | Setup | 944808 | 13 February 2009 | e4fa385b11cc1ceda5eb83a84c10c714 | ||||
• Binaries | Zip | 451824 | 13 February 2009 | c1733d1bc0def1e47f99bad83a0e3116 | ||||
• Documentation | Zip | 747550 | 13 February 2009 | 04d22b80d52d985aef4fefbc9f72ec56 | ||||
• Sources | Zip | 1361303 | 13 February 2009 | 4cf2736470dd56094cf7d4930ff796bf | ||||
• Dependencies | Zip | 898241 | 14 March 2008 | cc990f643b460ce4ee37264cc00713c6 | ||||
• Original source | http://ftp.gnu.org/gnu/grep/grep-2.5.4.tar.gz |
You can also download the files from the GnuWin32 files page. New releases of the port of this package can be monitored.
NETWORKS FOR EVERYONE
Grep – это утилита, которая выводит строки по заданному регулярному выражению. Для сетевого администратора она очень полезна для парсинга больших лог-файлов, например с Cisco ASA. Grep по текстовому файлу с логами размером 2GB занимает обычно несколько секунд.
В любой nix-подобной операционной системе grep уже предустановлен, но если в качестве рабочей станции сетевого администратора используется ОС Windows, то подобного инструмента как такового нет. В Windows есть утилиты командной строки find и findstr, но они работают помедленней чем grep и не такие гибкие. Поэтому я советую установить и использовать grep в Windows.
Нужно скачать Setup с сайта http://gnuwin32.sourceforge.net/packages/grep.htm и установить его.
После установки для удобства вызова grep из командной строки, чтобы не писать каждый раз полный путь к утилите, нужно добавить запись в PATH. PATH представляет собой переменную, которая содержит набор директорий с исполняемыми файлами. Для добавления записи в PATH нужно открыть окно “Система” (WIN+PAUSE), выбрать “Дополнительные параметры системы”, далее выбрать “Переменные среды…”.
В открывшемся окне двойным щелчком нажимаем на “PATH” и добавляем через знак “;” (точка с запятой) путь “C:\Program Files (x86)\GnuWin32\bin” и нажимаем “ОК”.
Далее открываем cmd и проверяем настройку командой “path” – в конце вывода команды должен добавиться путь до папки с утилитой grep.
Все, теперь можно пользоваться.
Приведу пример, как использую этот инструмент я. Например перед нами стоит задача достать из файла с логами все, что связано с определенным IP-адресом.
Я решаю такие задачи следующим образом:
Создаю папку в корне диска C:\tmp\
Далее перехожу в эту папку командой cd c:\tmp\
Далее выполняю следующую команду:
grep x.x.x.x C:\tmp\log.txt > grep-log.txt
Где x.x.x.x – ip адрес, который мы ищем, “C:\tmp\log.txt” – файл с логами, знак “>” – оператор перенаправления вывода команды в файл, “grep-log.txt” файл с выводом команды grep.
Так же grep удобно использовать для фильтрации вывода команды “netstat”. Сделать это можно через знак pipeline – “|”. Чтобы посмотреть все порты, которые находятся на хосте в статусе “LISTEN” можно использовать следующую команду:
Подробную справку по использованию grep можно получить командой
🧾 Как скачать, установить и использовать GNU Grep в Windows?
grep – очень мощный и полезный инструмент, используемый в операционных системах Linux и Unix.
Он в основном используется для сопоставления и вывода указанного текста в заданных текстовых файлах в разных форматах.
У grep также есть подверсии вроде egrep, которые предоставляют расширенные функциональные возможности, такие как регулярные выражения.
В этом руководстве мы узнаем, как загрузить, установить и использовать grep и egrep для операционных систем Windows.
Скачать GNU Grep
grep – это инструментальные средства Unix или Linux, предоставляемые как opensource.
Он также предоставляется GNU для операционных систем и платформ Windows.
Мы можем скачать установочный файл grep со следующей страницы.
Или просто мы можем скачать по следующей ссылке напрямую.
Но имейте в виду, что когда появятся новые версии, следующая ссылка будет устаревшей.
Установить GNU Grep
Мы начнем установку, щелкнув на файл gre-2.5.4-setup.exe.
Мы видим, что текущая версия программы установки, которую мы будем устанавливать, – 2.5.4.
Это может потребовать некоторых административных привилегий.
Таким образом, мы предоставим права администратора, нажав Да в диалоговом окне.
Под стартовым экраном установки GNU Grep
Далее следуйте подсказкам установщика в графическом режиме.
Задать путь Grep для переменных среды
В соответствии с заданной конфигурацией grep устанавливается в C:\Program Files\GnuWin32\ в каталоге bin.
Чтобы вызвать и использовать команду grep из MS-DOS или командной строки, нам нужно добавить этот путь к переменным среды PATHvariable.
Мы также можем увидеть исполняемые файлы с именами egrep, fgrep и grep на следующем экране.
Мы можем установить путь разными способами, но наиболее практичным является использование слишком setx командной строки, как показано ниже.
Затем мы можем проверить, открыв новую командную строку или окно MS-DOS и запустив команду grep, как показано ниже.
Мы можем увидеть, что команда grep установлена и ожидает некоторый параметр и файл для работы.
Вывести справочную информацию Grep
Команда grep в Windows очень похожа на версию для Linux. Но нам может понадобиться некоторая полезная информация об использовании и опциях. Мы можем напечатать справочную информацию с опцией –help, как показано ниже.
Поиск текста или слова с grep в Windows
Мы можем выполнить поиск определенного слова или текста, просто предоставив термин grep и файл, который мы хотим отобразить.
grep в Windows? Легко!
Многим любителям шела нравится чудная команда grep.
К сожалению, windows нативно не имеет такой команды, по этому некоторые ставят себе наборы различных консольных утилит в *nix стиле, включая grep.
Мне, как любителю посидеть в консоли Windows очень мешало отсутствие грепа, по этому мои скрипты под Win всегда были не так хороши, как могли бы быть. Но мои скрипты должны работать на любой (ну, или почти на любой) Windows, так как же быть?
К счастью, в Windows XP (и выше) появились две команды, которые призваны исправить положение — это find и более мощный вариант — findstr.
первая простая, и имеет явный недостаток — искомый текст надо заключать в кавычки. Не знаю, как вам — но мне очень не удобно печатать кавычки каждый раз 🙂
findstr же этого не требует, и к тому же позволяет искать используя мощь регулярных выражений.
Таким образом, теперь надо помнить, что мы не в bash\zsh\etc, а в Win, и набирать findstr вместо grep.
Ну а на своей машине я сделал следующее:
echo findstr %1 %2 %3 %4 %5 > %systemroot%\grep.cmd
теперь можно не задумываясь грепать вывод:
C:\WINDOWS>findstr LISTEN
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1963 0.0.0.0:0 LISTENING
TCP 10.198.17.58:139 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1025 0.0.0.0:0 LISTENING
TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING
TCP 127.0.0.1:9051 0.0.0.0:0 LISTENING
TCP 192.168.56.1:139 0.0.0.0:0 LISTENING
ifconfig:
echo IF «%1″==»-a» (ipconfig /all) ELSE (ipconfig %1) > %systemroot%\ifconfig.cmd
echo %1 /?> %systemroot%\man.cmd
UPD перенёс в «Системное администрирование»
Grep все, что можно
Про grep знают если не все, то многие читатели Хабра, однако его многочисленных родственников знают немногие.
Давайте узнаем, как можно грепать все, что таит в себе хоть крупицу текста.
pgrep
Команда pgrep грепает список исполняемых процессов.
zipgrep, zfgrep, bzfgrep, xzfgrep
Можно искать ключевое слово, паттерн напрямую из архива с помощью этих команд.
Fixed Strings | Basic RegExps | Extended RegExps |
---|---|---|
zfgrep | zgrep | zegrep |
bzfgrep | bzgrep | bzegrep |
xzfgrep | xzgrep | xzegrep |
Каким пакетам они принадлежат?
Сравниваем с grep способность парсить расширенные регулярки и радуемся результату.
pdfgrep
Программа идет с одноименным пакетом.
Pdfgrep не поддерживает расширенные регулярные выражения, тем не менее это очень полезная программа. Я довольно часто открываю pdf-ки и ищу в них текст, пока не вспомню в какой книге было то, что мне нужно и так теряю уйму времени. Теперь буду знать.
dgrep
Fixed Strings | Basic RegExps | Extended RegExps |
---|---|---|
dfgrep | dgrep | degrep |
— | dzgrep | — |
Верхние три ищут в текстовых файлах, а dzgrep — в архивных.
msggrep, mboxgrep
Это совсем уже узко специализированная штуковина, чтобы парсить каталоги локализации. Идет в комплекте с пакетом gettext. Программа не из разряда пользовательских, но если очень нужно, можно запустить с командной строки.
Следующий экспонат — парсер почтовых ящиков mboxgrep. Проект так и не взлетел, его разработка прекращена. По идее он должен был находить паттерны в письмах и обрабатывать вывод так как будто это отдельные файлы. Однако, для начала он эти паттерны должен уметь находить.
Что странно, системные вызовы read все время одни и те же, вне зависимости от поиска.
Любопытно было бы узнать, завелась ли данная программа успешно у кого-нибудь?
Ну ладно, мы увлеклись, а греп семейство еще не инвентаризировано полностью.
ssgrep
Нужно установить пакет Gnumeric. Умеет шерстить электронные таблицы, в том числе проприетарный Excel формат. Ругается на него, но делает.
Расширенные регулярные выражения не поддерживает. Вполне полезная штука, рекомендую.
ngrep
Наблюдение за сетевым трафиком по порту syslog и ключевому слову.
Наблюдение за сетевым трафиком по порту ftp и ключевым словам без учета регистра, сравнивать слова целиком.
По-строчный вывод http трафика.
А еще есть киллер-фича. Можно задать hex строку, которой ngrep сопоставляет бинарные данные пакета. Например, можно задать сигнатуру завирусованной гифки, чтобы затем настроить файрвол на раннее обнаружение.
Жаль, что разработка проекта прекращена, может в итоге получиться вполне годный самоворо-паровозо-вертолет парсер и анализатор сетевого трафика.
deepgrep
Под конец можно помянуть не-юниксвейные агрегаты поиска, такие как deepgrep от KDE strigi-utils.
Программа умеет шукать искать в файлах формата:
Умеет искать в архивах, вложенных друг в друга.