Norint rasti nurodytą failo simbolių seką, naudojamas reguliarusis posakis (regex). Šablonui apibrėžti gali būti naudojami tokie simboliai kaip raidės, skaitmenys ir specialieji simboliai. Įvairias užduotis galima lengvai atlikti naudojant regex modelius. Šioje pamokoje parodysime, kaip naudoti regex šablonus naudojant komandą „awk“.
Pagrindiniai raštuose naudojami simboliai
Daugelis simbolių gali būti naudojami regex šablonui apibrėžti. Simboliai, dažniausiai naudojami apibrėžiant regex modelius, yra apibrėžti toliau.
Charakteris | apibūdinimas |
---|---|
. | Pritaikykite bet kurį simbolį be naujos eilutės (\ n) |
\ | Cituoti naują metaženklį |
^ | Atitinka eilutės pradžią |
$ | Atitinka eilutės pabaigą |
| | Apibrėžkite pakaitinį |
() | Apibrėžkite grupę |
[] | Apibrėžkite simbolių klasę |
\ w | Suderinkite bet kurį žodį |
\ s | Derinkite bet kokį tarpo simbolį |
\ d | Suderinkite bet kurį skaitmenį |
\ b | Atitinkama bet kokia žodžio riba |
Sukurkite failą
Norėdami sekti šią mokymo programą, sukurkite tekstinį failą pavadinimu Produktai.txt. Faile turi būti keturi laukai: ID, vardas, tipas ir kaina.
ID Pavadinimas Tipas Kaina
p1001 15 "monitoriaus monitorius 100 USD
p1002 pelė „A4tech“ 10 USD
p1003 „Samsung“ spausdintuvo spausdintuvas 50 USD
p1004 „HP“ skaitytuvo skaitytuvas 60 USD
p1005 „Logitech“ pelė 15 USD
1 pavyzdys: apibrėžkite regex šabloną naudodami simbolių klasę
Ši komanda „awk“ ieškos ir spausdins eilutes, kuriose yra simbolis „n“, po kurio rašomi simboliai „er“.
$ kačių produktai.txt$ awk '/ [n] [er] / print $ 0' produktų.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Išvestyje rodoma linija, atitinkanti modelį. Čia tik viena eilutė atitinka modelį.
2 pavyzdys: apibrėžkite regex šabloną naudodami simbolį '^'
Ši komanda „awk“ ieškos ir atspausdins eilučių, prasidedančių simboliu „p“, įskaitant skaičių 3.
$ kačių produktai.txt$ awk '/ ^ p.* 3 / print $ 0 produktai.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Čia yra viena eilutė, atitinkanti modelį.
3 pavyzdys: apibrėžkite regex šabloną naudodami funkciją „gsub“
The „gsub“ () funkcija naudojama visame pasaulyje ieškoti ir pakeisti tekstą. Ši komanda „awk“ ieškos žodžio „Skaitytuvas“ ir pakeis jį žodžiu „Maršrutizatorius“ prieš spausdinant rezultatą.
$ kačių produktai.txt$ awk 'gsub (/ Scanner /, "Router")' produktai.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Yra viena eilutė, kurioje yra žodis „Skaitytuvas"ir"Skaitytuvas"pakeičiama žodžiu"Maršrutizatoriusprieš spausdinant eilutę.
4 pavyzdys: apibrėžkite regex šabloną naudodami „*“
Ši komanda „awk“ ieškos ir išspausdins visas eilutes, prasidedančias „Mo“ ir apimančias visus vėlesnius simbolius.
$ kačių produktai.txt$ awk '/ Mo * / print $ 0' produktai.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Trys eilutės atitinka modelį: dviejose eilutėse yra žodis „Pelė"ir vienoje eilutėje yra žodis"Monitorius".
5 pavyzdys: apibrėžkite regex šabloną naudodami simbolį „$“
Ši komanda „awk“ ieškos ir spausdins faile eiles, kurios baigiasi skaičiumi 5.
$ kačių produktai.txt$ awk '/ 5 $ / print $ 0' produktai.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Faile yra tik viena eilutė, kuri baigiasi skaičiumi 5.
6 pavyzdys: apibrėžkite regex šabloną naudodami „^“ ir „|“ simboliai
„^simbolis rodo eilutės pradžią, o|simbolis nurodo loginį ARBA teiginį. Ši komanda „awk“ ieškos ir spausdins eilutes, prasidedančias simboliup„ir yra arba“Skaitytuvas„arba“Pelė".
$ kačių produktai.txt$ awk '/ ^ p.* (Skaitytuvas | Pelė) / 'produktai.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Išvestis rodo, kad dviejose eilutėse yra žodis „Pelė"ir vienoje eilutėje yra žodis"Skaitytuvas". Trys eilutės prasideda simboliu "p".
7 pavyzdys: apibrėžkite regex šabloną naudodami simbolį „+“
„+'operatorius naudojamas rasti bent vieną atitikmenį. Ši komanda „awk“ ieškos ir spausdins eilutes, kuriose yra simbolisn' nors karta.
$ kačių produktai.txt$ awk '/ n + / print' produktai.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Čia personažas “n„sudėtyje yra bent kartą eilutėse, kuriose yra žodžiai Monitorius, spausdintuvas ir skaitytuvas.
8 pavyzdys: apibrėžkite regex šabloną naudodami funkciją gsub ()
Ši komanda „awk“ visame pasaulyje ieškos žodžio „Spausdintuvas"ir pakeiskite jį žodžiu"Monitorius' naudojant gsub () funkcija.
$ kačių produktai.txt$ awk 'gsub (/ Printer / „Monitor“) print $ 0' produktai.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas. Ketvirtoje failo eilutėje yra žodis „Spausdintuvas"du kartus ir išvestyje"Spausdintuvas"pakeista žodžiu"Monitorius".
Išvada
Daugelis simbolių ir funkcijų gali būti naudojami apibrėžiant regex modelius įvairioms paieškoms ir užduotims pakeisti. Kai kurie simboliai, paprastai naudojami regex modeliuose, šioje pamokoje naudojami su komanda „awk“.