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 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 Unix 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
- VmWare: ошибка Failed to lock the file! VMWare virtual disk (vmdk)
- Linux: регулярные выражения в Grep
- IPFire 2.9 Первое знакомство









Отличные новости!!! Ура!
Спасибо, думаю с 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]