Výukový program pro pravidelné výrazy v Linuxu: Příklad Grep Regex

Obsah:

Anonim

Co jsou regulární výrazy Linuxu?

Pravidelné výrazy Linuxu jsou speciální znaky, které pomáhají vyhledávat data a porovnávat složité vzory. Regulární výrazy jsou zkráceny jako „regexp“ nebo „regex“. Používají se v mnoha linuxových programech, jako je grep, bash, rename, sed atd.

Druhy regulárních výrazů

Pro snazší pochopení se postupně naučíme různé typy regulárních výrazů.

  • Základní regulární výrazy
  • Intervalové regulární výrazy
  • Rozšířené regulární výrazy
  • souhrn

Pokud video není přístupné, klikněte sem

Základní regulární výrazy

Některé z běžně používaných příkazů s regulárními výrazy jsou tr, sed, vi a grep. Níže jsou uvedeny některé základní regulární výrazy.

Symbol Popisy
. nahradí libovolný znak
odpovídá začátku řetězce
$ odpovídá konci řetězce
* odpovídá nule nebo vícekrát předchozímu znaku
\ Představují speciální znaky
() Seskupuje regulární výrazy
? Odpovídá přesně jedné postavě

Podívejme se na příklad.

Provedením ukázky kočky zobrazíte obsah existujícího souboru

Vyhledejte obsah obsahující písmeno „a“.

' ^ ' odpovídá začátku řetězce. Vyhledejme obsah, který ZAČÍNÁ a

Filtrovány jsou pouze řádky začínající znakem. Řádky, které na začátku neobsahují znak „a“, jsou ignorovány.

Podívejme se na další příklad -

Vyberte pouze ty řádky, které končí na t pomocí $

Intervalové regulární výrazy

Tyto výrazy nám říkají o počtu výskytů znaku v řetězci. Oni jsou

Výraz Popis
{n}

Odpovídá přesně předchozímu znaku, který se objevuje 'n' krát

{n, m} Shoduje se s předchozím znakem, který se objevuje krát, ale ne více než m
{n,} Shoduje se s předchozím znakem, pouze pokud se objeví 'n' krát nebo více

Příklad:

Odfiltrujte všechny řádky, které obsahují znak „p“

Chceme zkontrolovat, zda se znak „p“ objevuje přesně dvakrát za sebou v řetězci. K tomu by byla syntaxe:

cat sample | grep -E p\{2}

Poznámka: Musíte přidat -E s těmito regulárními výrazy.

Rozšířené regulární výrazy

Tyto regulární výrazy obsahují kombinace více než jednoho výrazu. Někteří z nich jsou:

Výraz Popis

\ +

Odpovídá jednomu nebo více výskytům předchozího znaku

\?

Odpovídá nule nebo jednomu výskytu předchozího znaku

Příklad:

Hledání všech znaků „t“

Předpokládejme, že chceme odfiltrovat řádky, kde znak „a“ předchází znaku „t“

Můžeme použít příkaz jako

cat sample|grep "a\+t"

Roztažení výztuhy

Syntaxe pro rozšíření složených závorek je buď posloupnost, nebo seznam položek uvnitř složených závorek „{}“ oddělených čárkami. Počáteční a koncová položka v pořadí jsou odděleny dvěma tečkami „…“.

Nějaké příklady:

Ve výše uvedených příkladech vytvoří příkaz echo řetězce pomocí rozšíření složené závorky.

Souhrn:

  • Regulární výrazy jsou sada znaků používaných ke kontrole vzorů v řetězcích
  • Nazývají se také „regexp“ a „regex“
  • Při psaní skriptů je důležité se naučit regulární výrazy
  • Některé základní regulární výrazy jsou:
Symbol Popisy
. nahradí libovolný znak
odpovídá začátku řetězce
$ odpovídá konci řetězce
  • Některé rozšířené regulární výrazy jsou:
Výraz Popis
\ + Odpovídá jednomu nebo více výskytům předchozího znaku
\? Odpovídá nule nebo jednomu výskytu předchozího znaku
  • Některé intervalové regulární výrazy jsou:
Výraz Popis
{n} Odpovídá přesně předchozímu znaku, který se objevuje 'n' krát
{n, m} Shoduje se s předchozím znakem, který se objevuje krát, ale ne více než m
{n,} Shoduje se s předchozím znakem, pouze pokud se objeví 'n' krát nebo více
  • Rozšíření složené závorky se používá ke generování řetězců. Pomáhá při vytváření více řetězců z jednoho.