Výukový program pre regulárne výrazy v Linuxe: Príklad Grep Regex

Obsah:

Anonim

Čo sú to regulárne výrazy systému Linux?

Regulárne výrazy Linuxu sú špeciálne znaky, ktoré pomáhajú vyhľadávať údaje a porovnávať zložité vzory. Regulárne výrazy sa skracujú ako „regexp“ alebo „regex“. Používajú sa v mnohých linuxových programoch ako grep, bash, rename, sed atď.

Typy regulárnych výrazov

Pre ľahšie pochopenie sa naučíme postupne rôzne typy regulárnych výrazov.

  • Základné regulárne výrazy
  • Intervalové regulárne výrazy
  • Rozšírené regulárne výrazy
  • Zhrnutie

Ak video nie je prístupné, kliknite sem

Základné regulárne výrazy

Niektoré z bežne používaných príkazov s regulárnymi výrazmi sú tr, sed, vi a grep. Ďalej sú uvedené niektoré základné regulárne výrazy.

Symbol Popisy
. nahradí ľubovoľný znak
sa zhoduje so začiatkom reťazca
$ zodpovedá koncu reťazca
* porovnáva nula alebo viackrát predchádzajúci znak
\ Predstavujú špeciálne znaky
() Skupiny regulárnych výrazov
? Zhoduje sa presne s jedným znakom

Pozrime sa na príklad.

Vykonaním vzorky mačky zobrazíte obsah existujúceho súboru

Vyhľadajte obsah obsahujúci písmeno „a“.

' ^ ' sa zhoduje so začiatkom reťazca. Poďme hľadať obsah, ktorý ZAČÍNA znakom a

Filtrované sú iba riadky, ktoré začínajú znakom. Riadky, ktoré na začiatku neobsahujú znak „a“, sú ignorované.

Pozrime sa na ďalší príklad -

Vyberte iba tie riadky, ktoré končia t pomocou $

Intervalové regulárne výrazy

Tieto výrazy nám hovoria o počte výskytov znaku v reťazci. Oni sú

Vyjadrenie Popis
{n}

Zhoduje sa presne s predchádzajúcim znakom, ktorý sa zobrazuje „n“ krát

{n, m} Zhoduje sa s predchádzajúcim znakom vyskytujúcim sa „n“ -krát, ale nie viac ako m
{n,} Zhoduje sa s predchádzajúcim znakom, iba ak sa objaví 'n' krát alebo viac

Príklad:

Odfiltrujte všetky riadky, ktoré obsahujú znak „p“

Chceme skontrolovať, či sa znak „p“ v reťazci objavuje presne dvakrát za sebou. Pre tento účel by syntax bola:

cat sample | grep -E p\{2}

Poznámka: Musíte pridať -E s týmito regulárnymi výrazmi.

Rozšírené regulárne výrazy

Tieto regulárne výrazy obsahujú kombinácie viacerých výrazov. Niektoré z nich sú:

Vyjadrenie Popis

\ +

Zhoduje sa s jedným alebo viacerými výskytmi predchádzajúceho znaku

\?

Zhoduje sa s nulovým alebo jedným výskytom predchádzajúceho znaku

Príklad:

Hľadajú sa všetky znaky „t“

Predpokladajme, že chceme odfiltrovať riadky, kde znak „a“ predchádza znaku „t“

Môžeme použiť príkaz ako

cat sample|grep "a\+t"

Rozšírenie vzpery

Syntax pre roztiahnutie zátvoriek je sekvencia alebo zoznam položiek oddelených čiarkami v zložených zátvorkách „{}“. Počiatočná a konečná položka v poradí sú oddelené dvoma bodkami „…“.

Niekoľko príkladov:

Vo vyššie uvedených príkladoch príkaz echo vytvára reťazce pomocou rozšírenia zátvorky.

Zhrnutie:

  • Regulárne výrazy sú sada znakov používaných na kontrolu vzorov v reťazcoch
  • Nazývajú sa tiež „regexp“ a „regex“
  • Pri písaní skriptov je dôležité naučiť sa regulárne výrazy
  • Niektoré základné regulárne výrazy sú:
Symbol Popisy
. nahradí ľubovoľný znak
sa zhoduje so začiatkom reťazca
$ zodpovedá koncu reťazca
  • Niektoré rozšírené regulárne výrazy sú:
Vyjadrenie Popis
\ + Zhoduje sa s jedným alebo viacerými výskytmi predchádzajúceho znaku
\? Zhoduje sa s nulovým alebo jedným výskytom predchádzajúceho znaku
  • Niektoré intervalové regulárne výrazy sú:
Vyjadrenie Popis
{n} Zhoduje sa presne s predchádzajúcim znakom, ktorý sa zobrazuje „n“ krát
{n, m} Zhoduje sa s predchádzajúcim znakom vyskytujúcim sa „n“ -krát, ale nie viac ako m
{n,} Zhoduje sa s predchádzajúcim znakom, iba ak sa objaví 'n' krát alebo viac
  • Rozšírenie zátvorky sa používa na generovanie reťazcov. Pomáha pri vytváraní viacerých reťazcov z jedného.