Навчальний посібник із регулярних виразів 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» разів або більше |
- Розгортання дужок використовується для створення рядків. Це допомагає створити кілька рядків з одного.