Kako pisati skripte koristeći Awk programski jezik - 13. dio


Sve vreme od početka serije Awk do 12. dela, pisali smo male Awk komande i programe na komandnoj liniji iu shell skriptama.

Međutim, Awk, baš kao što je Shell, takođe interpretirani jezik, stoga, sa svime kroz šta smo prošli od početka ove serije, sada možete pisati Awk izvršne skripte.

Slično kao što pišemo shell skriptu, Awk skripte počinju sa redom:

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

Na primjer, na mom sistemu, uslužni program Awk se nalazi u /usr/bin/awk, stoga bih pokrenuo Awk skriptu na sljedeći način:

#! /usr/bin/awk -f 

Objašnjavajući red iznad:

  1. #! – naziva se Shebang, koji specificira tumača za instrukcije u skripti
  2. /usr/bin/awk – je interpreter
  3. -f – opcija tumača, koja se koristi za čitanje programske datoteke

Međutim, hajde da sada zaronimo u razmatranje nekih primera Awk izvršnih skripti, možemo početi sa jednostavnom skriptom ispod. Koristite svoj omiljeni uređivač da otvorite novu datoteku na sljedeći način:

vi script.awk

I zalijepite kod ispod u datoteku:

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

Sačuvajte datoteku i izađite, a zatim učinite skriptu izvršnom izdavanjem naredbe ispod:

chmod +x script.awk

Nakon toga, pokrenite ga:

./script.awk
Sample Output
Writing my first Awk executable script!

Kritički programer se mora pitati, “gdje su komentari?”, da, također možete uključiti komentare u svoju Awk skriptu. Pisanje komentara u vašem kodu je uvijek dobra programska praksa.

Pomaže drugim programerima koji pregledavaju vaš kod da shvate šta pokušavate da postignete u svakom delu skripte ili programske datoteke.

Stoga možete uključiti komentare u gornju skriptu na sljedeći način.

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

Zatim ćemo pogledati primjer gdje čitamo unos iz datoteke. Želimo potražiti korisnika sistema pod imenom aaronkilik u datoteci računa, /etc/passwd, zatim odštampati korisničko ime, korisnički ID i korisnika GID kako slijedi:

Ispod je sadržaj naše skripte pod nazivom 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 }

Spremite datoteku i izađite, učinite skriptu izvršnom i izvršite je na sljedeći način:

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

U posljednjem primjeru ispod, koristit ćemo do while naredbu za ispis brojeva od 0-10:

Ispod je sadržaj naše skripte pod nazivom 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)
}

Nakon što sačuvate datoteku, učinite skriptu izvršnom kao što smo ranije radili. Nakon toga, pokrenite ga:

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

Sažetak

Došli smo do kraja ove zanimljive serije Awk, nadam se da ste naučili puno iz svih 13 dijelova, kao uvod u Awk programski jezik.

Kao što sam spomenuo od početka, Awk je potpuni jezik za obradu teksta, iz tog razloga možete naučiti više drugih aspekata Awk programskog jezika kao što su varijable okruženja, nizovi, funkcije (ugrađene i korisnički definirane) i dalje.

Još postoje dodatni dijelovi Awk programiranja za učenje i savladavanje, pa sam u nastavku dao neke veze do važnih online resursa koje možete koristiti da proširite svoje vještine Awk programiranja, ovo nije nužno sve što vam je potrebno, možete pogledati i traže korisne knjige o Awk programiranju.

Referentni linkovi: GNU Awk korisnički vodič i programiranje AWK jezika

Za bilo koje misli koje želite podijeliti ili pitanja, koristite obrazac za komentare ispod. Ne zaboravite da uvijek ostanete povezani s Tecmintom za uzbudljivije serije.