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'.