Awk

Kako uporabljati regularni izraz z ukazom 'awk'

Kako uporabljati regularni izraz z ukazom 'awk'

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.txt
Izdelki $ 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.txt
Izdelki $ 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.txt
Izdelki $ 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'.

Odprtokodna vrata komercialnih igralnih sistemov
Brezplačne, odprtokodne in medplatformacijske igre, ki jih lahko uporabite za igranje starih, pa tudi nekaterih dokaj nedavnih naslovov iger. V tem čl...
Najboljše igre ukazne vrstice za Linux
Ukazna vrstica ni le vaš največji zaveznik pri uporabi Linuxa - lahko je tudi vir zabave, saj jo lahko uporabljate za igranje številnih zabavnih iger,...
Najboljše aplikacije za preslikavo gamepadov za Linux
Če želite igre na Linuxu igrati z igralno ploščico namesto s tipičnim sistemom za vnos tipkovnice in miške, je za vas na voljo nekaj uporabnih aplikac...