Hvernig á að skrifa forskriftir með því að nota Awk forritunarmál - hluti 13


Allan tímann frá upphafi Awk seríunnar upp að hluta 12 höfum við verið að skrifa litlar Awk skipanir og forrit á skipanalínuna og í skeljaforskriftum í sömu röð.

Hins vegar er Awk, rétt eins og Shell, einnig túlkað tungumál, því, með öllu því sem við höfum gengið í gegnum frá upphafi þessarar seríu, geturðu nú skrifað Awk keyranleg forskrift.

Svipað og við skrifum skeljahandrit, byrja Awk forskriftir á línunni:

#! /path/to/awk/utility -f 

Til dæmis á kerfinu mínu er Awk tólið staðsett í /usr/bin/awk, þess vegna myndi ég byrja á Awk handriti sem hér segir:

#! /usr/bin/awk -f 

Útskýrir línuna hér að ofan:

  1. #! – vísað til sem Shebang, sem tilgreinir túlk fyrir leiðbeiningarnar í handriti
  2. /usr/bin/awk – er túlkurinn
  3. -f – túlkunarvalkostur, notaður til að lesa forritaskrá

Sem sagt, við skulum nú kafa í að skoða nokkur dæmi um Awk keyranleg forskrift, við getum byrjað á einföldu handritinu hér að neðan. Notaðu uppáhalds ritilinn þinn til að opna nýja skrá á eftirfarandi hátt:

$ vi script.awk

Og límdu kóðann hér að neðan í skránni:

#!/usr/bin/awk -f 
BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Vistaðu skrána og farðu út og gerðu skriftuna keyranlega með því að gefa út skipunina hér að neðan:

$ chmod +x script.awk

Síðan skaltu keyra það:

$ ./script.awk
Writing my first Awk executable script!

Mikilvægur forritari þarna úti hlýtur að vera að spyrja: hvar eru athugasemdirnar?, já, þú getur líka sett athugasemdir inn í Awk handritið þitt. Að skrifa athugasemdir í kóðann þinn er alltaf góð forritunaræfing.

Það hjálpar öðrum forriturum að skoða kóðann þinn til að skilja hvað þú ert að reyna að ná í hverjum hluta handrits eða forritaskrár.

Þess vegna geturðu sett athugasemdir inn í handritið hér að ofan sem hér segir.

#!/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!" }

Næst skulum við skoða dæmi þar sem við lesum inntak úr skrá. Við viljum leita að kerfisnotanda að nafni aaronkilik í reikningsskránni, /etc/passwd, og prenta síðan út notandanafn, notandakenni og notanda-GID sem hér segir:

Hér að neðan er innihald handritsins okkar sem heitir second.awk.

#! /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 }

Vistaðu skrána og farðu út, gerðu handritið keyranlegt og keyrðu það eins og hér að neðan:

$ chmod +x second.awk
$ ./second.awk /etc/passwd
Username : aaronkilik User ID : 1000 User GID : 1000

Í síðasta dæminu hér að neðan munum við nota do while setningu til að prenta út tölur frá 0-10:

Hér að neðan er innihald handritsins okkar sem heitir do.awk.

#! /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)
}

Eftir að þú hefur vistað skrána skaltu gera handritið keyranlegt eins og við höfum gert áður. Síðan skaltu keyra það:

$ chmod +x do.awk
$ ./do.awk
0
1
2
3
4
5
6
7
8
9
10

Samantekt

Við erum komin að lokum þessarar áhugaverðu Awk seríu, ég vona að þú hafir lært mikið af öllum 13 hlutunum, sem kynningu á Awk forritunarmálinu.

Eins og ég nefndi frá upphafi er Awk fullkomið textavinnslumál, af þeim sökum geturðu lært fleiri þætti Awk forritunarmálsins eins og umhverfisbreytur, fylki, aðgerðir (innbyggt og notendaskilgreint) og fleira.

Það eru enn fleiri hlutar af Awk forritun til að læra og ná tökum á, svo hér að neðan hef ég veitt nokkra tengla á mikilvægar heimildir á netinu sem þú getur notað til að auka Awk forritunarkunnáttu þína, þetta er ekki endilega allt sem þú þarft, þú getur líka skoðað út fyrir gagnlegar Awk forritunarbækur.

Tilvísunartenglar: AWK tungumálaforritun

Fyrir allar hugsanir sem þú vilt deila eða spurningar, notaðu athugasemdareyðublaðið hér að neðan. Mundu að vera alltaf tengdur við Tecmint fyrir fleiri spennandi seríur.