Regularni izraz (regularni izraz) se uporablja za iskanje določenega zaporedja znakov v datoteki. Za določitev vzorca lahko uporabimo simbole, kot so črke, številke in posebni znaki. Različne naloge je mogoče enostavno dokončati z uporabo vzorcev regularnih izrazov. V tej vadnici vam bomo z ukazom 'awk' pokazali, kako uporabljati vzorce regularnih izrazov.
Osnovni znaki, uporabljeni v vzorcih
Za določitev vzorca regularnih izrazov je mogoče uporabiti veliko znakov. Spodaj so opredeljeni znaki, ki se najpogosteje uporabljajo za določanje vzorcev regularnih izrazov.
Značaj | Opis |
---|---|
. | Ujemanje katerega koli znaka brez nove vrstice (\ n) |
\ | Navedite novega meta-znaka |
^ | Ujema se z začetkom vrstice |
$ | Ujema se s koncem vrstice |
| | Določite nadomestnega |
() | Določite skupino |
[] | Določite razred znakov |
\ w | Ujemi s katero koli besedo |
\ s | Ujema se s poljubnim presledkom |
\ d | Ujema se s katero koli številko |
\ b | Ujema se s poljubno besedno mejo |
Ustvari datoteko
Če želite nadaljevati s to vadnico, ustvarite besedilno datoteko z imenom izdelkov.txt. Datoteka mora vsebovati štiri polja: ID, ime, vrsto in ceno.
ID Ime Vrsta Cena
p1001 15 "Monitor Monitor 100 USD
p1002 Miška A4tech Miška 10 USD
p1003 Samsungov tiskalnik Tiskalnik 50 USD
p1004 Optični bralnik HP Scanner 60 USD
p1005 Miška Logitech Miška 15 USD
Primer 1: Določite vzorec regularnega izraza z uporabo razreda znakov
Naslednji ukaz 'awk' bo poiskal in natisnil vrstice, ki vsebujejo znak 'n', čemur sledijo znaki 'er'.
$ mačji izdelki.txt$ awk '/ [n] [er] / print $ 0' izdelkov.txt
Naslednji izhod bo prikazan po zagonu zgornjih ukazov. Izhod prikazuje črto, ki ustreza vzorcu. Tu se vzorcu ujema le ena vrstica.
Primer 2: Določite vzorec regularnega izraza s simbolom '^'
Naslednji ukaz 'awk' bo poiskal in natisnil vrstice, ki se začnejo z znakom 'p' in vključujejo številko 3.
$ mačji izdelki.txt$ awk '/ ^ str.* 3 / print $ 0 'izdelkov.txt
Naslednji izhod bo prikazan po zagonu zgornjih ukazov. Tu je ena vrstica, ki ustreza vzorcu.
Primer 3: Določite vzorec regularnega izraza s pomočjo funkcije gsub
The gsub () funkcija se uporablja za globalno iskanje in zamenjavo besedila. Naslednji ukaz 'awk' bo poiskal besedo 'Scanner' in jo nadomestil z besedo 'Router' pred tiskanjem rezultata.
$ mačji izdelki.txt$ awk 'gsub (/ Scanner /, "Router")' izdelki.txt
Naslednji izhod bo prikazan po zagonu zgornjih ukazov. Ena vrstica vsebuje besedo 'Optični bralnik'in'Optični bralnik"se nadomesti z besedo"Usmerjevalnik'preden se vrstica natisne.
Primer 4: Določite vzorec regularnega izraza z '*'
Naslednji ukaz 'awk' bo poiskal in natisnil kateri koli niz, ki se začne z 'Mo' in vključuje kateri koli naslednji znak.
$ mačji izdelki.txtIzdelki $ awk '/ Mo * / print $ 0'.txt
Naslednji izhod bo prikazan po zagonu zgornjih ukazov. Tri vrstice se ujemajo z vzorcem: dve vrstici vsebujeta besedo 'Miška"in ena vrstica vsebuje besedo"Monitor".
Primer 5: Določite vzorec regularnega izraza s simbolom '$'
Naslednji ukaz 'awk' bo poiskal in natisnil vrstice v datoteki, ki se končajo s številko 5.
$ mačji izdelki.txtIzdelki $ awk '/ 5 $ / print $ 0'.txt
Naslednji izhod bo prikazan po zagonu zgornjih ukazov. V datoteki je samo ena vrstica, ki se konča s številko 5.
Primer 6: Določite vzorec regularnega izraza z uporabo '^' in '|' simboli
"^'simbol označuje začetek vrstice, znak'|'simbol označuje logični stavek ALI. Naslednji ukaz 'awk' bo poiskal in natisnil vrstice, ki se začnejo z znakom 'str'in vsebujejo bodisi'Optični bralnik"ali"Miška".
$ mačji izdelki.txt$ awk '/ ^ str.* (Optični bralnik | Miška) / 'izdelki.txt
Naslednji izhod bo prikazan po zagonu zgornjih ukazov. Izhod kaže, da dve vrstici vsebujeta besedo 'Miška"in ena vrstica vsebuje besedo"Optični bralnik". Tri vrstice se začnejo z znakom 'str".
Primer 7: Določite vzorec regularnega izraza s simbolom '+'
"+'operator se uporablja za iskanje vsaj enega ujemanja. Naslednji ukaz 'awk' bo poiskal in natisnil vrstice, ki vsebujejo znak 'n' vsaj enkrat.
$ mačji izdelki.txtIzdelki $ awk '/ n + / print'.txt
Naslednji izhod bo prikazan po zagonu zgornjih ukazov. Tukaj, lik 'n'vsebuje se vsaj enkrat v vrsticah, ki vsebujejo besede Monitor, tiskalnik in optični bralnik.
Primer 8: Določite vzorec regularnega izraza s pomočjo funkcije gsub ()
Naslednji ukaz 'awk' bo globalno poiskal besedo 'Tiskalnik"in ga nadomestite z besedo"Monitor' uporabljati funkcija gsub ().
$ mačji izdelki.txt$ awk 'gsub (/ Tiskalnik /, "Monitor") print $ 0' izdelki.txt
Naslednji izhod bo prikazan po zagonu zgornjih ukazov. Četrta vrstica datoteke vsebuje besedo 'Tiskalnik'dvakrat in v izhodu,'Tiskalnik"je bil nadomeščen z besedo"Monitor".
Zaključek
Številne simbole in funkcije lahko uporabimo za določanje vzorcev regularnih izrazov za različna opravila iskanja in zamenjave. Nekateri simboli, ki se pogosto uporabljajo v vzorcih regularnih izrazov, so v tej vadnici uporabljeni z ukazom 'awk'.