Регулярное выражение — это шаблон, описывающий определенный объем текста, который можно использовать для поиска в содержимом файла определенной строки для использования в условии. —регулярные выражения redhat
Якоря
^ начало строки
$ конец строки
Классы персонажей
\s пустое пространство, включая пробелы, табуляции и разрывы строк
\S не пробел
\d цифра, такая же, как [0–9]
\D не цифра
\w слово
\W не слово
Квантификаторы
* 0 или более предшествующих символов
+ 1 или более предшествующих символов
? 0 или 1 предыдущего символа
Экранирующий символ
\ ставится перед метасимволом для поиска этого фактического символа
Метасимволы
^ [ . $ { * ( \ + ) | ? ‹ › должен использоваться с управляющим символом, если вы ищете именно его
Специальные символы
\н новая строка
\t вкладка
Группы и диапазоны
. любой символ, кроме новой строки (\n)
(a|b) a or b
() группа
[abc] a или b или c
[^abc] не a или b или c
[a-q] буква между a и q
[A-Q] заглавная буква между A и Q
[0–7] цифра от 0 до 7
Модификаторы шаблона
я нечувствителен к регистру
Другие помощники
.* проглатывает текст между двумя словами
\s+ гарантирует минимум 1 пробел между 2 словами
\s* гарантирует наличие 0 или более пробелов между двумя словами
^\s* начало строки с нулем или более пробелами
\s+.* проглатывает весь текст и пробелы между двумя словами
\d+ гарантирует минимум 1 число между 2 словами
‹\w› идентично ‹[a-zA-Z0-(_]›
Упражнения 1~2
файл данных для упражнений 1–2. скачать можно здесь
northwest NW Charles Main 3.0 .98 3 34 western WE Sharon Gray 5.3 .97 5 23 southwest SW Lewis Dalsass 2.7 .8 2 18 southern SO Suan Chin 5.1 .95 4 15 southeast SE Patricia Hemenway 4.0 .7 4 17 eastern EA TB Savage 4.4 .84 5 20 northeast NE AM Main Jr. 5.1 .94 3 13 north NO Margot Weber 4.5 .89 5 9 central CT Ann Stephens 5.7 .94 5 13 --Download datafile
Вопросы 1
Решите проблемы с помощью «grep»
- Найдите строки, начинающиеся с «н»
2. Найдите строки, оканчивающиеся на 4
3. Найдите «ТБ Дикарь»
4. Найдите строки с цифрой «5».
5. Найдите строки, начинающиеся с «w» или «e»
6. Найдите строки, в которых нет буквы «М»
7. Найдите строки, содержащие две заглавные буквы, за которыми следует один пробел и одна заглавная буква.
8. Найдите строки, в которых буква «s» повторяется более одного раза.
Ответы 1
# grep '^n' datafile # grep '4$' datafile # grep 'TB Savage' datafile # grep '5\.' datafile # grep '^[we]' datafile # grep -v 'M' datafile # grep '[A-Z][A-Z] [A-Z]' datafile # grep 'ss*' datafile
Вопросы 2
Решите проблемы с помощью «egrep»
- Найдите паттерн NW или EA
- Найдите «3», где это повторяется более одного раза
- Найдите строки, содержащие шаблон 2.x или 2x (x — число)
- Найдите строки, содержащие шаблон «нет», где он повторяется более одного раза.
- Измените линии с помощью «Ш» и «Су».
Ответы 2
# egrep '(NW|EA)' datafile # egrep '3+' datafile # egrep '(2\.?[0-9])' datafile # egrep '(no)+' datafile # egrep 'S(h|u)' datafile
Вывод
Я узнал о регулярных выражениях (регулярных выражениях), которые можно использовать для поиска в содержимом файла определенной строки для использования в условии, и выполнил несколько практических упражнений.