Što su Linux regularni izrazi?
Regularni izrazi za Linux posebni su znakovi koji pomažu u pretraživanju podataka i usklađivanju složenih obrazaca. Regularni izrazi skraćeni su kao 'regexp' ili 'regex'. Koriste se u mnogim Linux programima poput grep, bash, preimenovanje, sed itd.
Vrste regularnih izraza
Radi lakšeg razumijevanja naučimo različite vrste Regexa jedan po jedan.
- Osnovni regularni izrazi
- Interval Regularni izrazi
- Prošireni regularni izrazi
- Sažetak
Kliknite ovdje ako videozapis nije dostupan
Osnovni regularni izrazi
Neke od najčešće korištenih naredbi s regularnim izrazima su tr, sed, vi i grep. U nastavku su navedeni neki od osnovnih regularnih izraza.
Simbol | Opisi |
---|---|
. | zamjenjuje bilo koji lik |
odgovara početku niza | |
$ | odgovara kraju niza |
* | podudara se nula ili više puta s prethodnim znakom |
\ | Predstavljaju posebne znakove |
() | Grupira regularne izraze |
? | Odgovara točno jednom liku |
Pogledajmo primjer.
Izvršite uzorak mačke da biste vidjeli sadržaj postojeće datoteke
Potražite sadržaj koji sadrži slovo 'a'.
' ^ ' odgovara početku niza. Potražimo sadržaj koji POČINJE s
Filtriraju se samo retci koji započinju znakom. Redci koji na početku ne sadrže znak 'a' zanemaruju se.
Pogledajmo još jedan primjer -
Odaberite samo one retke koji završavaju s t pomoću $
Interval Regularni izrazi
Ti nam izrazi govore o broju pojavljivanja znakova u nizu. Oni su
Izraz | Opis |
---|---|
{n} |
Točno odgovara prethodnom znaku koji se pojavljuje 'n' puta |
{n, m} | Podudara se s prethodnim znakom koji se pojavljuje 'n' puta, ali ne više od m |
{n,} | Podudara se s prethodnim znakom samo kada se pojavi 'n' puta ili više |
Primjer:
Filtrirajte sve retke koji sadrže znak 'p'
Želimo provjeriti pojavljuje li se znak 'p' točno dva puta u nizu jedan za drugim. Za to bi sintaksa bila:
cat sample | grep -E p\{2}
Napomena: Morate dodati -E s ovim regularnim izrazima.
Prošireni regularni izrazi
Ti regularni izrazi sadrže kombinacije više od jednog izraza. Neki od njih su:
Izraz | Opis |
---|---|
\ + |
Podudara se s jednom ili više pojava prethodnog znaka |
\? |
Podudara se s nulom ili jednom pojavom prethodnog znaka |
Primjer:
Traženje svih znakova 't'
Pretpostavimo da želimo filtrirati retke u kojima znak 'a' prethodi znaku 't'
Možemo koristiti naredbu poput
cat sample|grep "a\+t"
Proširenje aparatića
Sintaksa za proširivanje zagrada je ili niz stavki ili popis odvojenih zarezima unutar kovrčavih zagrada "{}". Početne i završne stavke u nizu odvojene su s dva razdoblja "...".
Neki primjeri:
U gornjim primjerima naredba echo stvara nizove pomoću proširenja zagrade.
Sažetak:
- Regularni izrazi skup su znakova koji se koriste za provjeru uzoraka u nizovima
- Također se nazivaju 'regularni izraz' i 'regularni izraz'
- Važno je naučiti regularne izraze za pisanje skripti
- Neki osnovni regularni izrazi su:
Simbol | Opisi |
---|---|
. | zamjenjuje bilo koji lik |
odgovara početku niza | |
$ | odgovara kraju niza |
- Neki prošireni regularni izrazi su:
Izraz | Opis |
---|---|
\ + | Podudara se s jednom ili više pojava prethodnog znaka |
\? | Podudara se s nulom ili jednom pojavom prethodnog znaka |
- Neki su intervalni regularni izrazi:
Izraz | Opis |
---|---|
{n} | Točno odgovara prethodnom znaku koji se pojavljuje 'n' puta |
{n, m} | Podudara se s prethodnim znakom koji se pojavljuje 'n' puta, ali ne više od m |
{n,} | Podudara se s prethodnim znakom samo kada se pojavi 'n' puta ili više |
- Proširenje zagrade koristi se za generiranje žica. Pomaže u stvaranju više nizova iz jednog.