Č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.