Awk

Kaip naudoti „Regex“ su komanda „awk“

Kaip naudoti „Regex“ su komanda „awk“

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

Populiariausi „Oculus App Lab“ žaidimai
Jei esate „Oculus“ laisvų rankų įrangos savininkas, turite žinoti, kaip krauti iš šono. Šoninis įkėlimas yra ne parduotuvėje esančio turinio įdiegimas...
10 geriausių žaidimų, kuriuos reikia žaisti naudojant „Ubuntu“
„Windows“ platforma buvo viena iš dominuojančių žaidimų platformų dėl didžiulio procento žaidimų, kurie šiandien kuriami natūraliai palaikant „Windows...
5 geriausi „Arcade“ žaidimai, skirti „Linux“
Šiais laikais kompiuteriai yra rimta mašina, naudojama žaidimams. Jei negalėsite gauti naujo aukšto rezultato, žinosite, ką noriu pasakyti. Šiame įraš...