Навчальний посібник із регулярних виразів Linux: приклад регулярного виразу Grep

Що таке регулярні вирази Linux?

Регулярні вирази Linux це спеціальні символи, які допомагають шукати дані та зіставляти складні шаблони. Регулярні вирази скорочуються як «regexp» або «regex». Вони використовуються в багатьох програмах Linux, таких як grep, bash, rename, sed тощо.

Типи регулярних виразів

Для простоти розуміння давайте вивчимо різні типи регулярних виразів один за іншим.

Натисніть тут якщо відео недоступне

Основні регулярні вирази

Деякі з часто використовуваних команд із регулярними виразами: tr, sed, vi та GREP. Нижче наведено деякі з основних регулярних виразів.

Symbol Descriptіони
. замінює будь-який символ
^ відповідає початку рядка
$ відповідає кінці рядка
* збігається з попереднім символом нуль або більше разів
\ Представляє спеціальні символи
() Групує регулярні вирази
? Збігається рівно з одним символом

Подивимось приклад.

Виконайте приклад cat, щоб переглянути вміст існуючого файлу

Основні регулярні вирази

Шукайте вміст, що містить літеру «а».

Основні регулярні вирази

"^' відповідає початку рядка. Давайте шукати вміст, який ПОЧИНАЄТЬСЯ з a

Основні регулярні вирази

Фільтруються лише рядки, які починаються з символу. Рядки, які не містять символу «a» на початку, ігноруються.

Давайте розглянемо інший приклад –

Основні регулярні вирази

Виберіть лише ті рядки, які закінчуються на t $

Основні регулярні вирази

Інтервальні регулярні вирази

Ці вирази повідомляють нам про кількість входжень символу в рядок. Вони є

вираз Опис
{не} Точно відповідає попередньому символу, який з’являється 'n' разів
{n,m} Збігається з попереднім символом, який з'являється 'n' разів, але не більше m
{n,} Збігається з попереднім символом, лише якщо він з’являється «n» разів або більше

приклад:

Відфільтрувати всі рядки, які містять символ "p"

Інтервальні регулярні вирази

Ми хочемо перевірити, що символ 'p' з'являється рівно 2 рази в рядку один за одним. Для цього синтаксис буде таким:

cat sample | grep -E p\{2}

Інтервальні регулярні вирази

Примітка. До цих регулярних виразів потрібно додати -E.

Розширені регулярні вирази

Ці регулярні вирази містять комбінації більш ніж одного виразу. Деякі з них:

вираз Опис
\+ Збігається з одним або кількома випадками попереднього символу
\? Відповідає нулю або одному повторенню попереднього символу

приклад:

Пошук за всіма символами "t"

Розширені регулярні вирази

Припустімо, ми хочемо відфільтрувати рядки, де символ "a" передує символу "t"

Ми можемо використовувати команду як

cat sample|grep "a\+t"

Розширені регулярні вирази

Розширення дужки

Синтаксис розгортання фігурних дужок — це або послідовність, або розділений комами список елементів у фігурних дужках «{}». Початковий і кінцевий пункти послідовності розділені двома крапками «..».

Приклади:

Розширення дужки

У наведених вище прикладах команда echo створює рядки за допомогою розкриття дужок.

Основна інформація:

  • Регулярні вирази — це набір символів, який використовується для перевірки шаблонів у рядках
  • Їх також називають "regexp" і "regex"
  • Важливо вивчити регулярні вирази для написання сценаріїв
  • Деякі основні регулярні вирази:
Symbol Descriptіони
. замінює будь-який символ
^ відповідає початку рядка
$ відповідає кінці рядка
  • Деякі розширені регулярні вирази:
вираз Опис

\+

Збігається з одним або кількома випадками попереднього символу
\? Відповідає нулю або одному повторенню попереднього символу
  • Деякі інтервальні регулярні вирази:
вираз Опис
{не} Точно відповідає попередньому символу, який з’являється 'n' разів
{n,m} Збігається з попереднім символом, який з'являється 'n' разів, але не більше m
{n,} Збігається з попереднім символом, лише якщо він з’являється «n» разів або більше
  • Розгортання дужок використовується для створення рядків. Це допомагає створити кілька рядків з одного.