Урок за регулярен израз на Linux: Пример за Regex на Grep

Какво представляват регулярните изрази на Linux?

Регулярни изрази на Linux са специални знаци, които помагат при търсене на данни и съвпадение на сложни модели. Регулярните изрази се съкращават като 'regexp' или 'regex'. Те се използват в много Linux програми като grep, bash, rename, sed и др.

Видове регулярни изрази

За по-лесно разбиране нека научим различните типове Regex един по един.

Кликнете тук ако видеото не е достъпно

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

Някои от често използваните команди с регулярни изрази са tr, sed, vi и Впиши. По-долу са изброени някои от основните Regex.

символ Descriptйони
. замества произволен знак
^ съвпада с началото на низ
$ съвпада с края на низа
* съвпада нула или повече пъти с предходния знак
\ Представлява специални знаци
() Групира регулярни изрази
? Съвпада точно с един знак

Да видим един пример.

Изпълнете cat sample, за да видите съдържанието на съществуващ файл

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

Търсене на съдържание, съдържащо буква „а“.

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

"^' съответства на началото на низ. Нека потърсим съдържание, което ЗАПОЧВА с a

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

Филтрират се само редове, които започват със знак. Редове, които не съдържат знака 'a' в началото, се игнорират.

Нека разгледаме друг пример –

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

Изберете само онези редове, които завършват с t, като използвате $

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

Интервал Регулярни изрази

Тези изрази ни казват за броя на срещанията на символ в низ. Те са

Изразяване Descriptйон
{н} Съвпада с предходния знак, появяващ се 'n' пъти точно
{n,m} Съвпада с предходния знак, появяващ се 'n' пъти, но не повече от m
{n,} Съвпада с предходния знак само когато се появява 'n' пъти или повече

Пример:

Филтрирайте всички редове, които съдържат знака "p"

Интервал Регулярни изрази

Искаме да проверим дали знакът 'p' се появява точно 2 пъти в низ един след друг. За това синтаксисът ще бъде:

cat sample | grep -E p\{2}

Интервал Регулярни изрази

Забележка: Трябва да добавите -E с тези регулярни изрази.

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

Тези регулярни изрази съдържат комбинации от повече от един израз. Някои от тях са:

Изразяване Descriptйон
\+ Съвпада с едно или повече появявания на предишния знак
\? Съвпада с нула или едно срещане на предишния знак

Пример:

Търсене на всички знаци 't'

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

Да предположим, че искаме да филтрираме редове, където знакът „a“ предшества знака „t“

Можем да използваме команд�� като

cat sample|grep "a\+t"

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

Разширяване на скоби

Синтаксисът за разширяване на фигурни скоби е или последователност, или разделен със запетая списък от елементи във фигурни скоби „{}“. Началният и крайният елемент в последователност са разделени с две точки „..“.

Някои примери:

Разширяване на скоби

В горните примери командата echo създава низове, използвайки разширяването на скобите.

Резюме:

  • Регулярните изрази са набор от знаци, използвани за проверка на модели в низове
  • Те се наричат ​​също „regexp“ и „regex“
  • Важно е да научите регулярни изрази за писане на скриптове
  • Някои основни регулярни изрази са:
символ Descriptйони
. замества произволен знак
^ съвпада с началото на низ
$ съвпада с края на низа
  • Някои разширени регулярни изрази са:
Изразяване Descriptйон

\+

Съвпада с едно или повече появявания на предишния знак
\? Съвпада с нула или едно срещане на предишния знак
  • Някои интервални регулярни изрази са:
Изразяване Descriptйон
{н} Съвпада с предходния знак, появяващ се 'n' пъти точно
{n,m} Съвпада с предходния знак, появяващ се 'n' пъти, но не повече от m
{n,} Съвпада с предходния знак само когато се появява 'n' пъти или повече
  • Разширяването на скоби се използва за генериране на низове. Помага при създаването на множество низове от един.

Обобщете тази публикация с: