Про
grep знают если не все, то многие читатели Хабра, однако его многочисленных родственников знают немногие.
Давайте узнаем, как можно грепать все, что таит в себе хоть крупицу текста.
pgrep
Команда
pgrep грепает список исполняемых процессов.
С ключом
-a, команда также выдаст всю командную строку.
Если правильно комбинировать
ps и pgrep, то результат будет пожалуй удобнее, чем ps -ef |grep process_name, так как не содержит саму команду grep.zipgrep, zfgrep, bzfgrep, xzfgrep
Можно искать ключевое слово, паттерн напрямую из архива с помощью этих команд.
Утилиты поддерживают расширенные регулярные выражения и имеют свой аналог
egrep.| Fixed Strings | Basic RegExps | Extended RegExps |
|---|---|---|
| zfgrep | zgrep | zegrep |
| bzfgrep | bzgrep | bzegrep |
| xzfgrep | xzgrep | xzegrep |
Каким пакетам они принадлежат?
Сравниваем с
grep способность парсить расширенные регулярки и радуемся результату.pdfgrep
Программа идет с одноименным пакетом.
Команда парсит pdf файлы и делает все то, что положено
grep.Pdfgrep не поддерживает расширенные регулярные выражения, тем не менее это очень полезная программа. Я довольно часто открываю pdf-ки и ищу в них текст, пока не вспомню в какой книге было то, что мне нужно и так теряю уйму времени. Теперь буду знать.dgrep
Дебианщикам может быть знаком
dgrep, который идет с пакетом debian goodies. Команда вызывается так же как и обычный grep, только вместо файла указывается название пакета.
| Fixed Strings | Basic RegExps | Extended RegExps |
|---|---|---|
| dfgrep | dgrep | degrep |
| - | dzgrep | - |
Верхние три ищут в текстовых файлах, а
dzgrep — в архивных.msggrep, mboxgrep
Это совсем уже узко специализированная штуковина, чтобы парсить каталоги локализации. Идет в комплекте с пакетом gettext. Программа не из разряда пользовательских, но если очень нужно, можно запустить с командной строки.
И получить такой вывод на экран
Следующий экспонат — парсер почтовых ящиков mboxgrep. Проект так и не взлетел, его разработка прекращена. По идее он должен был находить паттерны в письмах и обрабатывать вывод так как будто это отдельные файлы. Однако, для начала он эти паттерны должен уметь находить.
А он не находит.
Что странно, системные вызовы
read все время одни и те же, вне зависимости от поиска.
Любопытно было бы узнать, завелась ли данная программа успешно у кого-нибудь?
Ну ладно, мы увлеклись, а греп семейство еще не инвентаризировано полностью.
Ну ладно, мы увлеклись, а греп семейство еще не инвентаризировано полностью.
ssgrep
Нужно установить пакет Gnumeric. Умеет шерстить электронные таблицы, в том числе проприетарный Excel формат. Ругается на него, но делает.
Расширенные регулярные выражения не поддерживает. Вполне полезная штука, рекомендую.
ngrep
Еще один заброшенный проект на SourceForge. Программа представляет из-себя гибрид
tcpdump и grep, причем к первому гораздо ближе, чем ко второму.
Наблюдение за сетевым трафиком по порту
syslog и ключевому слову.
Наблюдение за сетевым трафиком по порту
ftp и ключевым словам без учета регистра, сравнивать слова целиком.
По-строчный вывод
http трафика.
А еще есть киллер-фича. Можно задать hex строку, которой
ngrep сопоставляет бинарные данные пакета. Например, можно задать сигнатуру завирусованной гифки, чтобы затем настроить файрвол на раннее обнаружение.
Жаль, что разработка проекта прекращена, может в итоге получиться вполне годный самоворо-паровозо-вертолет парсер и анализатор сетевого трафика.
deepgrep
Под конец можно помянуть не-юниксвейные агрегаты поиска, такие как
deepgrep от KDE strigi-utils.
Программа умеет шукать искать в файлах формата:
tarar/debrpm(но неcpio)gzip/gzbzip2/bz2zip, а значит и jar/war а также документы OpenOffice.org/LibreOffice- MIME сообщения (т.е. прикрепленные файлы в емайле)
Умеет искать в архивах, вложенных друг в друга.
Из недостатков.
- Практически отсутствуют опции командной строки.
- Плохо документирована.
- Код возврата никак не связан с результатом поиска.
- Отсутствует поддержка сжатия с использование LZMA алгоритма:
lzma, xz, lzip, 7zа такжеlzop, rzip, cab. cpio, xar, rar, .Zформаты.
Комментариев нет:
Отправить комментарий