Регулярное выражение — это шаблон, описывающий определенный объем текста, который можно использовать для поиска в содержимом файла определенной строки для использования в условии.регулярные выражения 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-(_]›

— Регулярные выражения RedHat

Упражнения 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»

  1. Найдите строки, начинающиеся с «н»

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»

  1. Найдите паттерн NW или EA
  2. Найдите «3», где это повторяется более одного раза
  3. Найдите строки, содержащие шаблон 2.x или 2x (x — число)
  4. Найдите строки, содержащие шаблон «нет», где он повторяется более одного раза.
  5. Измените линии с помощью «Ш» и «Су».

Ответы 2

# egrep '(NW|EA)' datafile
# egrep '3+' datafile
# egrep '(2\.?[0-9])' datafile
# egrep '(no)+' datafile
# egrep 'S(h|u)' datafile

Вывод

Я узнал о регулярных выражениях (регулярных выражениях), которые можно использовать для поиска в содержимом файла определенной строки для использования в условии, и выполнил несколько практических упражнений.