Linux: регулярные выражения в Grep
Вряд ли найдется человек который знаком с Linux и не знаком с утилитой grep. Grep — является утилитой которая сроднилась с ОС Linux, включается в любой дистрибутив по умолчанию и позволяет находить информацию в файлах.
[ad#ad-2]
Регулярные выражения используемые в утилите Grep позволяют описать любую искомую строку. Примеры регулярных выражений:
^w1 w1|w2 [^ ]
В данном примере мы ищем любую строку содержащую последовательность символов «‘vivek’» в файле /etc/passswd
#grep vivek /etc/passwd vivek:x:1000:1000:Vivek Gite,,,:/home/vivek:/bin/bash vivekgite:x:1001:1001::/home/vivekgite:/bin/sh gitevivek:x:1002:1002::/home/gitevivek:/bin/sh
Пример поиска без учета регистра слова (т.е. без разницы с заглавной или прописной буквы начинается искомое слово)
grep -i -w vivek /etc/passwd
Пример поиска слова vivek или raj без учета регистра в файле /etc/passswd
grep -E -i -w 'vivek|raj' /etc/passwd
Использование символов ^ и $ в регулярных выражениях утилиты Grep
Символы ^ и $ в регулярных выражениях указывают на местоположение искомого слова в строке. Начало строки указывает ^ а конец строки $.
В следующем примере мы ищем строки которые начинаются со слова vivek
#grep ^vivek /etc/passwd vivek:x:1000:1000:Vivek Gite,,,:/home/vivek:/bin/bash vivekgite:x:1001:1001::/home/vivekgite:/bin/sh
Мы можем так же заставить grep искать строки которые начитаются только с vivek (и не показывать vivek1 vivek2 vivekgite)
grep -w ^vivek /etc/passwd
Поиск строки заканчивающейся на foo:
grep 'foo$' filename
Поиск строки содержащей только foo
grep '^foo$' filename
А можем поискать пустые строки в файле
grep '^$' filename
Поиск строки в которое входит выражение начинающееся с большой или с маленькой буквы
grep '^[vV]ivek' filename
Поиск той же строки только слово оканчивается на цифру
grep -w '[vV]ivek[0-9]' filename
Или на две цифры
grep 'foo[0-9][0-9]' filename
Так же при использовании Grep можно использовать такие выражения
[:alnum:] - посик буквенно-цифровых символов. [:alpha:] - буквенных символов [:blank:] - space и tab. [:digit:] - цифры: '0 1 2 3 4 5 6 7 8 9'. [:lower:] - прописные буквы: 'a b c d e f g h i j k l m n o p q r s t u v w x y z'. [:space:] - пустые символы: tab, newline, vertical tab, form feed, carriage return, and space. [:upper:] - заглавные буквы: 'A B C D E F G H I J K L M N O P Q R S T U V W X Y Z'.
Поиск всех строк из двух символов
grep '^..$' filename
Поиск всех строк начинающихся с точки и цифры
grep '^\.[0-9]' filename
Экранирование точек
Если мы зададим поиск вот так
grep '192.168.1.254' /etc/hosts
То в результате не получим того что нам хотелось
Для того что бы искать ip address надо экранировать входящие в него точки
grep '192\.168\.1\.254' /etc/hosts
В следующем примере ищем все строчки в которых есть ip address
egrep '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}' filenameЗ.Ы. возможно все что написано станет понятно не с первого раза, но к сожалению в одной статье описать все примеры просто невозможно. Если интересно — спрашивайте в комментах — ответим.
Similar Posts:
6 Responses to Linux: регулярные выражения в Grep
Добавить комментарий Отменить ответ
Метки
3D 2010 AMD Android Apple apt-get aptitude CISCO Core cpu D-Link debian ethernet Facebook Firefox FreeBSD Gnome Google hacking IBM Intel IOS Ip iPhone KDE Linux Microsoft Mozilla networking NVidia Radeon Red Hat Samsung Server Twitter Ubuntu USB Windows Windows 7 интернет процессор бизнес безопасность видео сетиСчетчики
Popular Posts
- Windows 7:боремся с ошибкой BOOTMGR is missing
- Windows 7:боремся с ошибкой BOOTMGR is missing (в картинках)
- Linux: Восстанавливаем работу grub после обновления Ubuntu до 10.04
- Windows 7: Возвращаем кнопку выполнить.
- PHP: увеличиваем или уменьшаем количество ресурсов под выполнение скриптов
- Windows: Active@ Boot Disk восстанавливаем MBR
- Ubuntu: Padre, the Perl IDE
- Linux: регулярные выражения в Grep
- IPFire 2.9 Первое знакомство
- CISCO: первая настройка маршрутизатора









Отличные новости!!! Ура!
Спасибо, думаю с grep’ом разберусь. ТОлько что съехал с винды, учусь пока.
здравствуйте, скажите пожалуйста, что значит ключ -P
и еще что означают внутренние символы \S \w \d
спасибо))
Вопрос касается именно грипа?
А графического варианта поиска разве нет? Я о поиске скажем слова в тексте?
Чет никак не пойму, как найти строку, которая содержит А и не содержит Б?
Если точнее, то как выбрать ip — мак, и не быбирать ip — (incomplete) из вывода arp
(91.200.1.2) at 74:1a:3a:ea:2a:a7 on vlan111 [vlan]
(91.200.1.3) at (incomplete) on vlan111 [vlan]