Ärme

Kuidas kasutada Regexit käsuga 'awk'

Kuidas kasutada Regexit käsuga 'awk'

Regulaaravaldist (regex) kasutatakse failis oleva tähemärkide järjestuse leidmiseks. Mustri määratlemiseks saab kasutada selliseid sümboleid nagu tähed, numbrid ja erimärgid. Regex-mustrite abil saab hõlpsalt erinevaid ülesandeid täita. Selles õpetuses näitame teile, kuidas regex mustreid kasutada käsuga 'awk'.

Mustrites kasutatavad põhitähed

Regexi mustri määratlemiseks saab kasutada paljusid märke. Regex-mustrite määratlemiseks kõige sagedamini kasutatavad märgid on määratletud allpool.

Iseloom Kirjeldus
. Sobitage mis tahes märk ilma uue reata (\ n)
\ Tsiteeri uut metakangelast
^ Sobitage rea algus
$ Vastab rea lõppu
| Määrake asendusliige
() Määrake rühm
[] Määratlege märkide klass
\ w Sobib mis tahes sõnaga
\ s Sobita mis tahes tühimärgiga
\ d Sobitage mis tahes numbrit
\ b Sobib mis tahes sõna piiriga

Looge fail

Selle õpetuse järgimiseks looge nimega tekstifail tooted.txt. Fail peaks sisaldama nelja välja: ID, nimi, tüüp ja hind.

ID nimi tüüp hind

p1001 15-tolline kuvari monitor 100 dollarit

p1002 A4tech hiir 10 dollarit

p1003 Samsungi printeriprinter 50 dollarit

p1004 HP skanneriskanner 60 dollarit

p1005 Logitechi hiir 15 dollarit

Näide 1: määratlege regeksimuster tähemärkide klassi abil

Järgmine käsk 'awk' otsib ja prindib ridu, mis sisaldavad märki 'n', millele järgneb tähemärk 'er'.

$ kassitooted.txt
$ awk '/ [n] [er] / print $ 0' tooteid.txt

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund. Väljund näitab joonele vastavat joont. Siin sobib mustriga ainult üks rida.

Näide 2: määrake regex muster sümboliga '^'

Järgmine käsk 'awk' otsib ja prindib ridu, mis algavad tähemärgiga 'p' ja sisaldavad numbrit 3.

$ kassitooted.txt
$ awk '/ ^ lk.* 3 / print $ 0 toodet.txt

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund. Siin on üks joon, mis sobib mustriga.

Näide 3: määrake regex muster funktsiooni gsub abil

The gsub () Funktsiooni kasutatakse teksti ülemaailmseks otsimiseks ja asendamiseks. Järgmine käsk awk otsib enne tulemuse printimist sõna „Scanner” ja asendab selle sõnaga „Router”.

$ kassitooted.txt
$ awk 'gsub (/ Scanner /, "Router")' tooted.txt

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund. On üks rida, mis sisaldab sõna "Skanner"ja"Skanner"asendatakse sõnaga"Ruuterenne rida printimist.

Näide 4: määrake regexi muster tähega „*”

Järgmine käsk 'awk' otsib ja prindib kõik stringid, mis algavad tähega 'Mo' ja sisaldavad kõiki järgnevaid märke.

$ kassitooted.txt
$ awk '/ Mo * / print $ 0' tooted.txt

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund. Kolm rida sobivad mustriga: kaks rida sisaldavad sõna "Hiir"ja üks rida sisaldab sõna"Kuvar".

Näide 5: määrake regex muster sümboliga $

Järgmine käsk 'awk' otsib ja prindib failist ridu, mis lõpevad numbriga 5.

$ kassitooted.txt
$ awk '/ 5 $ / print $ 0' tooteid.txt

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund.  Failis on ainult üks rida, mis lõpeb numbriga 5.

Näide 6: määrake regexi muster, kasutades '^' ja '|' sümbolid

"^sümbol tähistab rea algust ja '|sümbol tähistab loogilist VÕI lauset. Järgmine käsk 'awk' otsib ja printib tähega algavaid ridulk"ja sisaldavad kas"Skanner"või"Hiir".

$ kassitooted.txt
$ awk '/ ^ lk.* (Skanner | Hiir) / 'tooted.txt

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund. Väljund näitab, et kaks rida sisaldavad sõna "Hiir"ja üks rida sisaldab sõna"Skanner". Kolm rida algavad tähemärgigalk".

Näide 7: määrake regex muster, kasutades sümbolit „+”

"+'Operaatorit kasutatakse vähemalt ühe vaste leidmiseks. Järgmine käsk 'awk' otsib ja prindib märke sisaldavaid ridunvähemalt üks kord.

$ kassitooted.txt
$ awk '/ n + / print' tooted.txt

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund. Siin tähemärkn'sisaldab esineb vähemalt üks kord sõnu sisaldavatel ridadel Monitor, printer ja skanner.

Näide 8: määrake regex muster funktsiooni gsub () abil

Järgmine käsk awk otsib sõna globaalseltPrinter"ja asendage see sõnaga"Kuvar"kasutades gsub () funktsioon.

$ kassitooted.txt
$ awk 'gsub (/ Printer /, „Monitor”) print $ 0' tooteid.txt

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund. Faili neljas rida sisaldab sõna "Printer"kaks korda ja väljundis"Printer"on asendatud sõnaga"Kuvar".

Järeldus

Erinevate otsingu- ja ülesannete asendusmudelite määratlemiseks saab kasutada paljusid sümboleid ja funktsioone. Mõned regex-mustrites tavaliselt kasutatavad sümbolid rakendatakse selles õpetuses käsuga 'awk'.

Installige uusim OpenRA strateegiamäng Ubuntu Linuxi
OpenRA on tasuta / tasuta reaalajas strateegiamängumootor, mis loob uuesti Westwoodi varased mängud nagu klassikaline Command & Conquer: Red Alert. Ja...
Installige Linuxile uusim Dolphin Emulator for Gamecube & Wii
Dolphini emulaator võimaldab teil mängida valitud Gamecube & Wii mänge Linuxi personaalarvutites (PC). Vabalt saadaval oleva ja avatud lähtekoodiga m...
Kuidas kasutada GameConquerori petumootorit Linuxis
Artikkel sisaldab juhendit GameConquerori petumootori kasutamise kohta Linuxis. Paljud kasutajad, kes mängivad Windowsis mänge, kasutavad rakendust „C...