Example -1: Muutuja määratlemine ja printimine
'awk' kasutab muutuja määratlemiseks valikut '-v'. Selles näites myvar muutuja on väärtuse salvestamiseks määratletud käsus 'awk', „AWK muutuja” mis hiljem trükitakse. Väljundi kontrollimiseks käivitage terminalist järgmine käsk.
$ kaja | awk -v myvar = 'AWK muutuja' 'print myvar'Väljund:
Näide - 2: shellimuutuja kasutamine awk-s ühe ja kahe jutumärgiga
Näide näitab, kuidas shellimuuturit saab kasutada käsku awk. Siin shellimuutuja, myvar deklareeritakse koos väärtusega, "Linuxi vihje" esimeses käsus. Väärtuse lugemiseks kasutatakse sümbolit '$' koos shellimuutuja nimega. Teine käsk loeb muutujat, $ myval ühe jutumärgiga (') ja kolmas käsk loeb muutuja $ myvar topelttsiteerimisega (“) lauses' awk '.
$ myvar = "Linuxi vihje"$ kaja | awk -v awkvar = '$ myvar' 'print awkvar; '
$ kaja | awk -v awkvar = "$ myvar" 'print awkvar; '
Väljund:
Väljundis on näidatud, et $ myvari väärtust ei saa lugeda, kui see on lisatud ühe jutumärgiga (') ja väljund on $ myvar. Väärtus $ myvar trükitakse, kui see on lisatud topeltpakkumisega (“).
Näide - 3: ARGC muutuja lugemine awk-s
ARGC muutujat kasutatakse käsurea argumentide koguarvu lugemiseks. Kolm käsurea argumentide muutujat (t1, t2, t3) edastatakse järgmises awk-skriptis. Siin on skriptiga argumentide koguarv 4. Käivitage skript terminalist.
$ awk 'BEGIN print "Argumente kokku =", ARGC' t1 t2 t3Väljund:
Pärast skripti käivitamist ilmub järgmine väljund.
Näide - 4: faili sisu lugemine argumentmuutujate järgi
Looge nimega tekstifail klient.txt selle sisu praktiseerimiseks järgmise sisuga. Siin eraldatakse faili kõik väljad ühega vaheleht ruumi.
klient.txt
ID nimi103847 John Micheal
209485 Watson
974732 Mira Hossain
Awk-käsk saab iga välja lugeda igast tekstifailist argumendimuutujate kaupa. Seal on kaks välja klient.txt faili. Need on ID ja nimi. Järgmine skript prindib need kaks välja argumentide muutujate järgi, 1 dollar ja 2 dollarit eraldades kaks vaheleht tühikud. Käivitage skript terminalist.
$ kassi klient.txt$ kassi klient.txt | awk 'print $ 1 "\ t \ t" $ 2;'
Väljund:
Pärast ülaltoodud käskude käivitamist ilmub järgmine väljund.
Näide- 5: sisseehitatud muutuja, FS ja väljaeraldusvõimaluse kasutamine käsuga awk
FS muutujat kasutatakse awk käsus välieraldajana. FS-i vaikeväärtusena kasutatakse tühikut. Järgmine käsk loeb faili klient.txt kasutades ruumi eraldajana tühikut ja printige faili sisu. Käivitage terminalist käsk.
$ awk FS klient.txtVäljund:
Pärast skripti käivitamist ilmub järgmine väljund.
Awk-käsk võib välja eraldajana kasutada muid märke, kasutades valikut '-F'. Looge nimega tekstifail toote.txt järgmise sisuga, kus ':' kasutatakse väljaeraldajana.
toote.txt
101: Kook: 30 dollarit102: Pliiats: 5 dollarit
103: seep: 3 dollarit
104: Šampoon: 10 dollarit
Failis on kolm välja, toote.txt mis sisaldab toote ID-d, nime ja hinda. Järgmine käsk awk prindib iga rea ainult teise välja. Käivitage terminalist käsud.
$ kassitoode.txt$ awk -F ':' 'print $ 2' toode.txt
Väljund:
Siin trükkis esimene käsk sisu toote.txt ja teine käsk printis ainult faili teise välja.
Näide - 6: Sisseehitatud muutuja kasutamine, NR käsuga awk
Muutujat NR kasutatakse käsus awk failide kirjete või ridade koguarvu lugemiseks. Looge nimega tekstifail õpilane.txt selle muutuja funktsiooni testimiseks.
õpilane.txt
Nimepaketi semesterJohannes 20 3
Mira 22 1
Ella 18
Charle 15 8
Järgmine awk-skript prindib kolm esimest rida toote.txt faili. Siin lisatakse tingimus NR muutuja abil. Käsk prindib need read, kus NR väärtus on väiksem kui 4. Käivitage skript terminalist.
Väljund:
Pärast skripti käivitamist ilmub järgmine väljund.
$ kassiõpilane.txt | awk 'NR < 4'
Näide - 7: Sisseehitatud muutuja kasutamine, NF koos käsuga awk
NF-muutujat kasutatakse käsus awk failide igas reas olevate väljade koguarvu lugemiseks. Failile rakendatakse järgmine awk-skript, õpilane.txt mis on loodud eelmises näites. Skript prindib need read kohast õpilane.txt fail, kus väljade koguarv on väiksem kui 3. Käivitage terminalist käsk.
$ kassiõpilane.txt | awk 'NF < 3'Väljund:
Failis on ainult üks rida, kus väljade prinditavate väljade koguarv on väiksem kui 3.
Näide - 8: sisseehitatud muutuja OFS kasutamine käsuga awk
OFS muutujat kasutatakse awk käsus väljundvälja eraldaja lisamiseks väljundisse. toote.txt Selles näites kasutatakse faili OFS muutuja kasutamise näitamiseks. ':' kasutatakse tootes väljaeraldajana.txt-fail. Järgmine awk-skript kasutas OFS-i väärtusena '->' ning faili teine ja kolmas väli prinditakse selle eraldaja lisamisega. Käivitage terminalist käsud.
$ kassitoode.txt$ awk -F ':' 'BEGIN OFS = "->"; print $ 2, $ 3;' toode.txt
Väljund:
Pärast käskude käivitamist prinditakse järgmine väljund.
Järeldus:
Selles õpetuses on püütud selgitada awk-muutujate kõige tavalisemaid kasutusviise. Loodetavasti saab lugeja pärast selle õpetuse harjutamist skriptis awk-muutujaid õigesti kasutada.