Суббота
18.05.2024, 11:13
| RSS
Главная
Меню сайта

Категории раздела
Madriva [3]
Ubuntu (KUbuntu, EdUbuntu, XUbuntu) [78]
SUSE [1]
Fedora Core [9]
ASPLinux [1]
Debian [16]
Gentoo [3]
Другие [167]

Мини-чат

Наш опрос
Какую графическую среду Вы используете?
Всего ответов: 103

Статистика

Rambler's Top100Рейтинг@Mail.ru

Главная » 2009 » Июнь » 29 » Пять примеров использования grep
Пять примеров использования grep
20:49

Утилита grep является одной из самых важных при построении блоков фильтрации текста в shell. В этой статье мы покажем пять простых примеров ее использования, которые позволят вам по достоинству оценить ее возможности

Команда grep - это очень мощное средство для поиска и фильтрации текстовой информации. grep может работать как с стандартным потоком ввода, так и с информацией в файлах. Несмотря на кажущуюся простоту, grep мог бы занять первое место среди подобных утилит. Давайте рассмотрим несколько реальных примеров ее использования

Основная сфера применения grep - поиск слов или фраз в файлах и потоках вывода. Вы можете осуществить поиск, набрав в командной строке запрос и область поиска (файл). Например, чтобы найти строку “needle” в файле hystack.txt используйте следующую команду:

$ grep needle haystack.txt

В результате grep отобразит все вхождения needle, которые он встретит в содержимом файла haystack.txt. Важно заметить, что в этом случае grep ищет именно набор символов, а не слово. Например, будут отображены строки, включающие слово “needless” и другие слова, в которых встречается последовательность “needle”. Чтобы указать grep, что вы ищете именно слово, используйте ключ -w. Этот ключ ограничит область поиска только указанным словом. Под словом подразумевается запрос, ограниченный с обоих сторон любыми пробельными символами, знаками пунктуации или переносами строки.

$ grep -w needle haystack.txt

Не обязательно ограничивать область поиска только одним файлом, grep может выполнять поиск и по группе файлов, причем в результатах поиска будет указан файл, в котором обнаружено совпадение. Ключ -n добавит еще и номер строки, в которой обнаружено совпадение, а ключ -r позволит выполнить рекурсивный поиск. Это очень удобно при поиске среди файлов с исходными текстами программ.

$ grep -rnw function_name /home/www/dev/myprogram/

Имя файла будет указано перед каждым совпадением. Если вам необходимо скрыть имена файлов, воспользуйтесь ключом -h, напротив, если необходимы только имена файлов, то укажите ключ -l

Реальная мощь grep заключается в возможности использовать регулярные выражения. Вы можете искать текст, описав область поиска с помощью регулярного выражения (описания синтаксиса регулярных выражений выходит за рамки статьи, руководства по ним в большом количестве доступны в Сети). В следующем примере мы выполним поиск URL-адресов в лог-файле IRC и покажем последние 10 совпадений.

$ grep -wo http://.* channel.log | tail

Параметр -o указывает grep, что следует выводить лишь сопадение с шаблоном, а не всю строку. Вывод grep мы при помощи pipe перенаправляем команде tail, которая по умолчанию выводит 10 последних строк.

Теперь мы подсчитаем количество сообщений, посланных в irc-канал определенными пользователями.. Например, все сообщения, которые я послал из дома и с работы. Они отличаются по никнейму, дома я использую ник boombick_at_home, а на работе boombick_at_work

$ grep -c “^<boombick_at_\(home\|work\)>” channel.log

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

Ну и напоследок давайте выполним поиск по сообщениям людей, которые любят “кричать” в канале. Под “криком” мы понимаем сообщения, написанные в blondy-style, одними ЗАГЛАВНЫМИ буквами. Чтобы исключить из поиска случайные попадания аббревиатур, будем искать слова из пяти и более символов

$ grep -w “[A-Z]\+\{5,\}” channel.log

Ну вот и все, я надеюсь, что эта статья поможет вам оценить мощь grep и ее удобство в каждодневном использовании. Ну а за более детальным описанием вы можете обратиться к странице руководства man grep

Have a nice day

Источник: http://boombick.org/blog/posts/74

Категория: Другие | Просмотров: 886 | Добавил: tol | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Поиск

Друзья сайта

  • Администрация

    Andry


    Tol


    Copyright MyCorp © 2024
    Хостинг от uCoz