<Предыдущая | Содержание: | Следующая>
Якоря
Каретка (^) и знак доллара ($) символы рассматриваются как анкеры в регулярных выражениях. Это означает, что они вызывают совпадение только в том случае, если регулярное выражение находится в начале строки (^) или в конце строки ($):
[я @ linuxbox ~] $ grep -h '^ zip' dirlist * .txt
zip zipcloak zipgrep zipinfo zipnote zipsplit
[я @ linuxbox ~] $ grep -h 'zip $' dirlist * .txt
gunzip gzip funzip gpg-zip preunzip prezip распаковать zip
[я @ linuxbox ~] $ grep -h '^ zip $' dirlist * .txt
застежка-молния
[я @ linuxbox ~] $ grep -h '^ zip' dirlist * .txt
zip zipcloak zipgrep zipinfo zipnote zipsplit
[я @ linuxbox ~] $ grep -h 'zip $' dirlist * .txt
gunzip gzip funzip gpg-zip preunzip prezip распаковать zip
[я @ linuxbox ~] $ grep -h '^ zip $' dirlist * .txt
застежка-молния
Здесь мы искали в списке файлов строку «zip», расположенную в начале строки, конце строки и в строке, где она находится как в начале, так и в конце строки (т. Е. Сама по себе на линия). Обратите внимание, что регулярное выражение '^ $' (начало и конец, между которыми ничего нет) будет соответствовать пустым строкам.
Помощник по разгадыванию кроссвордов
Даже с нашим ограниченным знанием регулярных выражений на данный момент мы можем сделать что-нибудь полезное.
Моя жена любит разгадывать кроссворды и иногда просит меня помочь с тем или иным вопросом. Что-то вроде: «Какое слово из пяти букв, третья буква которого -« j », а последняя буква -« r », означает ...?» Такой вопрос заставил меня задуматься.
Знаете ли вы, что ваша система Linux содержит словарь? Оно делает. Взгляните на / USR / доля / дикт каталог, и вы можете найти один или несколько. Файлы словарей, расположенные там, представляют собой длинные списки слов, по одному в строке, расположенные в алфавитном порядке. В моей системе слова файл содержит чуть более 98,500 XNUMX
слова. Чтобы найти возможные ответы на вопрос кроссворда выше, мы могли бы сделать следующее:
[я @ linuxbox ~] $ grep -i '^ .. jr $' / usr / share / dict / слова
Майор майор
Используя это регулярное выражение, мы можем найти все слова в нашем файле словаря, состоящие из пяти букв и имеющих «j» в третьей позиции и «r» в последней позиции.