Awk

10 nuostabių Awk komandų pavyzdžių

10 nuostabių Awk komandų pavyzdžių
„Awk“ komanda yra galingas įrankis duomenims apdoroti. Jis gauna įvesties duomenis, jais manipuliuoja ir pateikia standartinės išvesties rezultatus. Failo eilutėse ir stulpeliuose galima atlikti įvairias operacijas.

Norint efektyviai apdoroti duomenis, labai svarbu žinoti „awk“ komandos pagrindus, o šiame įraše pateikiamos pagrindinės „awk“ komandos ypatybės. Pirmiausia patikrinkime sintaksę:

$ awk [parinktys] [failas]

Kai kurios dažniausiai naudojamos parinktys pateikiamos toliau pateiktoje lentelėje:

Variantas apibūdinimas
-F Norėdami nurodyti failų skyriklį
-f Nurodykite failą, kuriame yra scenarijus „awk“
-v Priskirti kintamąjį

Pažvelkime į keletą pavyzdžių apie komandos „awk“ naudojimą, o demonstravimui aš sukūriau tekstinį failą pavadinimu testFile.txt:

1. Kaip atsispausdinti failo stulpelį su komanda awk?

Komandą „awk“ galima naudoti norint gauti konkretų teksto failo stulpelį. Norėdami atsispausdinti failo turinį, naudokite:

$ cat testFile.txt

Dabar, norėdami atsispausdinti antrąjį failo stulpelį, naudokite:

$ awk 'print $ 2' testFile.txt

Norėdami atsispausdinti daugiau nei vieną lauką, naudokite komandą:

$ awk 'print $ 1, $ 2, $ 3' testFile.txt

Jei nenaudosite kablelio „“, išvestis bus be tarpų:

$ awk 'print $ 1 $ 2 $ 3' testFile.txt

2. Kaip naudoti reguliariąją išraišką su awk komanda:

Norėdami suderinti eilutes ar bet kurią išraišką, mes naudojame pasviruosius brūkšnelius „//“, pavyzdžiui, jei norite atspausdinti „Istoriją“ studijuojančių žmonių vardus, tada naudokite:

$ awk '/ History / print $ 2' testFile.txt

Rezultatas aiškiai rodo, kad tik „Sam“ ir „Tommy“ studijuoja „Istorijos“ kursą.

3. Kaip naudoti reliacinę išraišką su komanda „awk“:

Norėdami suderinti konkretaus lauko turinį, gali būti naudojama reliacinė išraiška. Norėdami suderinti bet kokią eilutę ar išraišką su lauku, nurodykite lauką ir naudokite palyginimo operatorių „~“ su šablonu, kaip nurodyta šioje komandoje:

$ awk '$ 3 ~ / is / print $ 2' testFile.txt

Aukščiau pateiktas išvestis, rodanti kiekvieną 2 stulpelio lauką, prieš kiekvieną lauką, kuriame 3 stulpelyje yra „is“.

Norėdami gauti priešingą minėtos komandos išvestį, naudokite! ~ “Operatorius:

$ awk '$ 3! ~ / is / print $ 2 'testFile.txt

Palyginimui taip pat galime naudoti tokius operatorius kaip didesni nei „>“ ir mažiau nei „<” and equal “=” as well:

$ awk '$ 4> 70 print $ 2' testFile.txt

Išvestyje atspausdinti žmonių, kurie gavo daugiau nei 70 pažymių, vardai.

4. Kaip naudoti diapazono modelį su komanda awk:

Diapazonas taip pat gali būti naudojamas paieškai; tiesiog naudokite kablelį „,“ norėdami atskirti diapazoną, kaip nurodyta toliau nurodytoje komandoje:

$ awk '/ Joel /, / Marlene / print $ 3' testFile.txt

Išvestyje rodomi diapazono objektai nuo „Joel“ iki „Marlene“ iš 2 stulpelio. Diapazonui apibrėžti galime naudoti dvigubą lygybės ženklą „==“; žr. toliau pateiktą pavyzdį:

$ awk '$ 4 == 80, $ 4 == 90 print $ 0' testFile.txt

Išvestyje rodomi žmonių vardai iš 2 stulpelio ženklų diapazone „70–80“ iš 4 stulpelio.

5. Kaip sujungti modelį naudojant loginį operatorių:

Naudojant loginius operatorius, pvz., OR „||“, „AND“ ir „&& “, galima derinti paieškos šablonus. Naudokite šią komandą

$ awk '$ 4> 80 && $ 6> 0.4 print $ 2 'testFile.txt

Pirmiau nurodyta komanda atsispausdina žmonių vardus prieš ketvirtąjį lauką, reikšmingesnį nei 80, o šeštąjį - didesnį nei 0.4. Sąlygą atitinka tik du įrašai.

6. Specialios „awk“ komandos išraiškos:

Yra du specialūs posakiai:PRADŽIA“Ir„GALAS“:

PRADŽIA: atlikti veiksmus prieš apdorojant duomenis

PABAIGA: Atlikti veiksmą apdorojus duomenis

$ awk 'BEGIN print „Apdorojimas prasidėjo“; spausdinti $ 2; END print „Apdorojimas baigėsi“ 'testFile.txt

7. Naudingas įmontuotas awk komandos kintamasis:

Komandoje awk yra įvairių kintamųjų, kurie padeda apdoroti duomenis:

Kintamasis apibūdinimas
NF Tai nurodo duomenų laukų skaičių
NR Tai nurodo dabartinio įrašo numerį
FAILO PAVADINIMAS Parodo šiuo metu apdorojamo failo pavadinimą
FS ir OFS Lauko skyriklis ir išvesties lauko skyriklis
RS ir ORS Atskiria įrašų ir išvesties įrašų separatorių

Pavyzdžiui:

$ awk 'END print "Failo pavadinimas" FILENAME "turi" NF "laukus ir" NR "įrašai"' testFile.txt

Mes naudojame „END“, bet jei naudojate „BEGIN“, išvestis duos 0 laukų ir 0 įrašų.

8. Kaip pakeisti įrašų skyriklį:

Numatytasis įrašo skyriklis paprastai yra tarpas; jei yra kablelis „,“ arba taškas „.“, Kaip lauko skyriklį, tada naudokite parinktį„ FS “kartu su separatoriumi.

Turėkime kitą failą, kuriame duomenų laukai yra atskirti kableliais „:“:

$ cat testFile2.txt
$ awk 'BEGIN FS = “:” print $ 2' testFile2.txt

Kadangi failo skyriklis yra dvitaškis, tačiau komanda „awk“ netgi naudinga tokiems failams, tiesiog naudokite parinktį „FS“.

Taip pat galima naudoti „-F“:

$ awk -F „:“ „print $ 2“ testFile2.txt

Numatytasis įrašų skyriklis yra „newline“, o norėdami nustatyti įrašų skyriklį į „:“, naudokite:

$ awk 'BEGIN RS = “:” print $ 1' testFile2.txt

9. Awk veiksmai:

„Awk“ veiksmai yra mažos programos, kurias supa „“ skliausteliai ir kuriose yra daugiau nei vienas sakinys, atskirtas kabliataškiais „;“.

Labiausiai naudojamas sakinys su komanda „awk“ yra sakinys „print“. Pavyzdžiui, norėdami spausdinti tekstą su kiekvienu įrašu, naudokite teksto eilutę kabutėse:

$ awk '„Tai yra laukas“, „$ 2“ bandomoji rinkmena.txt

Atlikime paprastą sumos operaciją naudodami awk:

$ awk 'sum + = $ 4 END printf „% d \ n“, sum' testFile.txt

10. Programos „awk“ kūrimas:

Pradėkime nuo „awk“ programavimo, žemiau pateiktas programavimas paprasčiausiai daro dauginimą:

PRADĖTI
i = 2
o (j<4)

spausdinti „2 padauginimas iš„ j “yra„ i * j;
j++

Išsaugokite programą pavadinimu „„myCode“.awk“Ir norėdami jį paleisti, atidarykite terminalą ir įveskite:

$ awk -f myCode.awk

Išvada:

„Awk“ komanda yra patogi komanda apdoroti, nuskaityti tekstinių failų duomenis, pvz., Atskirti bet kurį failo lauką; mes naudojame komandą „awk“. Tai leidžia lengviau ieškoti bet kokios formos ar rašto iš tekstinių failų. Šiame vadove mes suprantame komandos „awk“ ir jos naudojimo pagrindus. „Awk“ komanda patvirtina duomenis, generuoja ataskaitas ir netgi analizuoja failus. Naudodami paprastas komandas „awk“, vartotojai taip pat gali rašyti mažas programas, kad efektyviau apdorotų duomenis.

Mūšis už Wesnothą 1.13.6 Išleista plėtra
Mūšis už Wesnothą 1.13.6 išleistas praėjusį mėnesį, yra šeštasis 1 versijos kūrimo leidimas.13.„x“ serija ir ji teikia daug patobulinimų, ypač vartoto...
Kaip įdiegti „League of Legends“ „Ubuntu 14“.04
Jei esate „League of Legends“ gerbėjas, tai jums yra galimybė išbandyti „League of Legends“. Atminkite, kad LOL palaikoma „PlayOnLinux“, jei esate „Li...
Įdiekite naujausią „OpenRA“ strategijos žaidimą „Ubuntu Linux“
„OpenRA“ yra „Free / Free Real Time Strategy“ žaidimų variklis, atkuriantis ankstyvuosius „Westwood“ žaidimus, tokius kaip klasikinis „Command & Conqu...