Awk

Kako koristiti regularni izraz pomoću naredbe 'awk'

Kako koristiti regularni izraz pomoću naredbe 'awk'

Regularni izraz (regularni izraz) koristi se za pronalaženje određenog niza znakova unutar datoteke. Za definiranje uzorka mogu se koristiti simboli poput slova, znamenki i posebnih znakova. Razni zadaci mogu se lako izvršiti korištenjem uzoraka regularnih izraza. U ovom uputstvu pokazat ćemo vam kako koristiti regularne izraze pomoću naredbe 'awk'.

Osnovni znakovi koji se koriste u uzorcima

Mnogi se znakovi mogu koristiti za definiranje uzorka regularnih izraza. Znakovi koji se najčešće koriste za definiranje uzoraka regularnih izraza definirani su u nastavku.

Lik Opis
. Podudaranje s bilo kojim znakom bez novog retka (\ n)
\ Citiraj novog meta-lika
^ Poravnaj početak retka
$ Uskladite kraj retka
| Definirajte zamjenika
() Definirajte skupinu
[] Definirajte klasu znakova
\ w Uskladite bilo koju riječ
\ s Podudarajte se s bilo kojim razmakom
\ d Podudari bilo koju znamenku
\ b Podudarajte se s bilo kojom granicom riječi

Stvorite datoteku

Da biste nastavili s ovim uputstvom, stvorite tekstualnu datoteku s imenom proizvoda.txt. Datoteka treba sadržavati četiri polja: ID, Ime, Vrsta i Cijena.

ID Naziv Tip Cijena

p1001 15 "Monitor monitora 100 USD

p1002 A4tech mišji miš 10 dolara

p1003 Samsung printer za pisač 50 USD

p1004 Skener HP skenera 60 USD

p1005 Miš Logitech miš 15 USD

Primjer 1: Definirajte obrazac regularnog izraza pomoću klase znakova

Sljedeća naredba 'awk' potražit će i ispisati retke koji sadrže znak 'n' nakon čega slijede znakovi 'er'.

$ mačjih proizvoda.txt
$ awk '/ [n] [er] / print $ 0' proizvodi.txt

Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Izlaz prikazuje liniju koja odgovara uzorku. Ovdje se samo jedna linija podudara s uzorkom.

Primjer 2: Definirajte obrazac regularnog izraza pomoću simbola '^'

Sljedeća naredba 'awk' pretražit će i ispisati retke koji počinju znakom 'p' i sadržavati broj 3.

$ mačjih proizvoda.txt
$ awk '/ ^ str.* 3 / print $ 0 'proizvoda.txt

Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Ovdje postoji jedna linija koja odgovara obrascu.

Primjer 3: Definirajte obrazac regularnog izraza pomoću funkcije gsub

The gsub () funkcija koristi se za globalno traženje i zamjenu teksta. Sljedeća naredba "awk" potražit će riječ "Scanner" i zamijeniti je riječju "Router" prije ispisa rezultata.

$ mačjih proizvoda.txt
$ awk 'gsub (/ Scanner /, "Router")' proizvodi.txt

Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Postoji jedan redak koji sadrži riječ 'Skener', i'Skener'zamjenjuje se riječju'Usmjerivač'prije ispisa retka.

Primjer 4: Definirajte obrazac regularnog izraza s '*'

Sljedeća naredba "awk" potražit će i ispisati bilo koji niz koji započinje s "Mo" i uključuje bilo koji sljedeći znak.

$ mačjih proizvoda.txt
$ awk '/ Mo * / print $ 0' proizvodi.txt

Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Tri se retka podudaraju s uzorkom: dva retka sadrže riječ 'Miš'i jedan redak sadrži riječ'Monitor'.

Primjer 5: Definirajte obrazac regularnog izraza pomoću simbola '$'

Sljedeća naredba "awk" pretražit će i ispisati retke u datoteci koji završavaju brojem 5.

$ mačjih proizvoda.txt
$ awk '/ 5 $ / print $ 0' proizvodi.txt

Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi.  U datoteci postoji samo jedan redak koji završava brojem 5.

Primjer 6: Definirajte obrazac regularnog izraza pomoću '^' i '|' simboli

"^'simbol označava početak retka, a'|'simbol označava logički izraz ILI. Sljedeća naredba 'awk' potražit će i ispisati retke koji počinju znakom 'str'i sadrže bilo'Skener' ili 'Miš'.

$ mačjih proizvoda.txt
$ awk '/ ^ str.* (Skener | Miš) / 'proizvodi.txt

Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Izlaz pokazuje da dva retka sadrže riječ 'Miš'i jedan redak sadrži riječ'Skener'. Tri retka započinju znakom 'str'.

Primjer 7: Definirajte obrazac regularnog izraza pomoću simbola '+'

"+Operator 'koristi se za pronalaženje barem jednog podudaranja. Sljedeća naredba 'awk' potražit će i ispisati retke koji sadrže znak 'n' barem jednom.

$ mačjih proizvoda.txt
$ awk '/ n + / print' proizvodi.txt

Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Evo, lik 'n'sadrži pojavljuje se najmanje jednom u redovima koji sadrže riječi Monitor, pisač i skener.

Primjer 8: Definirajte obrazac regularnog izraza pomoću funkcije gsub ()

Sljedeća naredba 'awk' globalno će tražiti riječ 'Pisač'i zamijeni je riječju'Monitor' koristiti gsub () funkcija.

$ mačjih proizvoda.txt
$ awk 'gsub (/ Printer /, "Monitor") print $ 0' proizvodi.txt

Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Četvrti redak datoteke sadrži riječ 'Pisač'dva puta i na izlazu,'Pisač"zamijenjena je riječju"Monitor'.

Zaključak

Mnogi simboli i funkcije mogu se koristiti za definiranje uzoraka regularnih izraza za različite zadatke pretraživanja i zamjene. Neki simboli koji se obično koriste u uzorcima regularnih izraza primjenjuju se u ovom vodiču naredbom 'awk'.

Kako promijeniti pokazivač miša i veličinu, boju i shemu pokazivača na sustavu Windows 10
Pokazivač i pokazivač miša u sustavu Windows 10 vrlo su važni aspekti operativnog sustava. To se može reći i za druge operativne sustave, tako da u is...
Besplatni i otvoreni kodni pokretački programi za razvoj Linux igara
Ovaj će članak pokriti popis besplatnih i open source pokretačkih igara koje se mogu koristiti za razvoj 2D i 3D igara na Linuxu. Brojni su takvi moto...
Vodič za Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider dvanaesti je dodatak seriji Tomb Raider - franšizi u akcijsko-avanturističkoj igri koju je stvorio Eidos Montreal. I kritiča...