Урок за редовен израз на Linux: Пример за Grep Regex

Съдържание:

Anonim

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

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

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

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

  • Основни регулярни изрази
  • Интервал Регулярни изрази
  • Разширени регулярни изрази
  • Обобщение

Щракнете тук, ако видеоклипът не е достъпен

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

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

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

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

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

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

' ^ ' съответства на началото на низ. Нека да търсим съдържание, което СТАРТИРА с

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

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

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

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

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

Израз Описание
{н}

Съвпада точно с предходния знак, появяващ се „n“ пъти

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

Пример:

Филтрирайте всички редове, които съдържат символ „p“

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

cat sample | grep -E p\{2}

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

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

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

Израз Описание

\ +

Съответства на една или повече поява на предишния знак

\?

Съвпада с нула или една поява на предишния знак

Пример:

Търсене на всички символи „t“

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

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

cat sample|grep "a\+t"

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

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

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

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

Резюме:

  • Регулярните изрази са набор от символи, използвани за проверка на шаблони в низове
  • Те се наричат ​​още „регулярни изрази“ и „регулярни изрази“
  • Важно е да научите регулярни изрази за писане на скриптове
  • Някои основни регулярни изрази са:
Символ Описания
. замества всеки символ
съвпада с началото на низа
$ съвпада с края на низа
  • Някои разширени регулярни изрази са:
Израз Описание
\ + Съответства на една или повече поява на предишния знак
\? Съвпада с нула или една поява на предишния знак
  • Някои интервални регулярни изрази са:
Израз Описание
{н} Съвпада точно с предходния знак, появяващ се „n“ пъти
{n, m} Съответства на предходния знак, появяващ се „n“ пъти, но не повече от m
{н, } Съответства на предходния знак само когато се появява „n“ пъти или повече
  • Разширяването на скобата се използва за генериране на низове. Помага при създаването на множество низове от един.