Kaip rašyti scenarijus naudojant „Awk“ programavimo kalbą – 13 dalis
Nuo Awk serijos pradžios iki 12 dalies mes rašėme mažas Awk komandas ir programas atitinkamai komandinėje eilutėje ir apvalkalo scenarijuose.
Tačiau Awk, kaip ir „Shell“, taip pat yra interpretuojama kalba, todėl dabar galite rašyti „Awk“ vykdomuosius scenarijus.
Panašiai kaip rašome apvalkalo scenarijų, Awk scenarijai prasideda tokia eilute:
#! /path/to/awk/utility -f
Pavyzdžiui, mano sistemoje Awk paslaugų programa yra /usr/bin/awk, todėl Awk scenarijų pradėčiau taip:
#! /usr/bin/awk -f
Aukščiau pateiktos eilutės paaiškinimas:
#!
– vadinamas Shebang, kuris nurodo scenarijaus instrukcijų vertėją/usr/bin/awk
– yra vertėjas-f
– vertėjo parinktis, naudojama nuskaityti programos failą
Be to, dabar pasinerkime į kai kuriuos Awk vykdomųjų scenarijų pavyzdžius, galime pradėti nuo paprasto scenarijaus, esančio žemiau. Norėdami atidaryti naują failą, naudokite savo mėgstamą redaktorių taip:
vi script.awk
Ir įklijuokite žemiau esantį kodą į failą:
#!/usr/bin/awk -f
BEGIN { printf "%s\n","Writing my first Awk executable script!" }
Išsaugokite failą ir išeikite, tada padarykite scenarijų vykdytiną išleisdami toliau pateiktą komandą:
chmod +x script.awk
Po to paleiskite jį:
./script.awk
Pavyzdžio išvestis
Writing my first Awk executable script!
Kritiškas programuotojas tikriausiai klausia: „kur yra komentarai?“, taip, taip pat galite įtraukti komentarus į savo „Awk“ scenarijų. Komentarų rašymas į savo kodą visada yra gera programavimo praktika.
Tai padeda kitiems programuotojams, peržiūrintiems jūsų kodą, suprasti, ką jūs bandote pasiekti kiekvienoje scenarijaus ar programos failo dalyje.
Todėl į aukščiau pateiktą scenarijų galite įtraukti komentarus taip.
#!/usr/bin/awk -f
#This is how to write a comment in Awk
#using the BEGIN special pattern to print a sentence
BEGIN { printf "%s\n","Writing my first Awk executable script!" }
Toliau pažvelgsime į pavyzdį, kai skaitome įvestį iš failo. Norime paskyros faile /etc/passwd ieškoti sistemos naudotojo, vardu aaronkilik, tada atspausdinti naudotojo vardą, naudotojo ID ir naudotoją GID taip:
Toliau pateikiamas mūsų scenarijaus, pavadinto second.awk, turinys.
#! /usr/bin/awk -f
#use BEGIN sepecial character to set FS built-in variable
BEGIN { FS=":" }
#search for username: aaronkilik and print account details
/aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }
Išsaugokite failą ir išeikite, padarykite scenarijų vykdomąjį ir paleiskite jį taip, kaip nurodyta toliau:
chmod +x second.awk
./second.awk /etc/passwd
Pavyzdžio išvestis
Username : aaronkilik User ID : 1000 User GID : 1000
Paskutiniame toliau pateiktame pavyzdyje naudosime do while teiginį, kad išspausdintume skaičius nuo 0 iki 10:
Toliau pateikiamas mūsų scenarijaus, pavadinto do.awk, turinys.
#! /usr/bin/awk -f
#printing from 0-10 using a do while statement
#do while statement
BEGIN {
#initialize a counter
x=0
do {
print x;
x+=1;
}
while(x<=10)
}
Išsaugoję failą, padarykite scenarijų vykdomąjį, kaip darėme anksčiau. Po to paleiskite jį:
chmod +x do.awk
./do.awk
Pavyzdžio išvestis
0
1
2
3
4
5
6
7
8
9
10
Santrauka
Priėjome šios įdomios Awk serijos pabaigą. Tikiuosi, kad jūs daug išmokote iš visų 13 dalių, kaip įvadą į Awk programavimo kalbą.
Kaip minėjau nuo pat pradžių, „Awk“ yra visapusiška teksto apdorojimo kalba, todėl galite sužinoti daugiau kitų „Awk“ programavimo kalbos aspektų, tokių kaip aplinkos kintamieji, matricos, funkcijos (įtaisytos ir apibrėžtos vartotojo) ir ne tik.
Dar yra papildomų Awk programavimo dalių, kurias reikia išmokti ir įsisavinti, todėl toliau pateikiau keletą nuorodų į svarbius internetinius išteklius, kuriuos galite naudoti norėdami išplėsti savo Awk programavimo įgūdžius. Tai nebūtinai yra viskas, ko jums reikia. ieškokite naudingų „Awk“ programavimo knygų.
Nuorodų nuorodos: GNU Awk vartotojo vadovas ir AWK kalbos programavimas
Jei norite pasidalyti mintimis ar turite klausimų, naudokite toliau pateiktą komentarų formą. Nepamirškite visada palaikyti ryšį su Tecmint, kad gautumėte įdomesnių serialų.