Kako pisati skripte pomoću programskog jezika Awk - 13. dio


Cijelo vrijeme od početka serije Awk do 12. dijela pisali smo male Awk naredbe i programe u naredbenom retku odnosno u skriptama ljuske.

Međutim, Awk, kao i Shell, također je interpretirani jezik, stoga, uz sve što smo prošli od početka ove serije, sada možete pisati Awk izvršne skripte.

Slično kao što pišemo skriptu ljuske, Awk skripte počinju linijom:

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

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

#! /usr/bin/awk -f 

Objašnjenje retka iznad:

  1. #! – naziva se Shebang, što navodi tumača za upute u skripti
  2. /usr/bin/awk – je tumač
  3. -f – opcija tumača, koristi se za čitanje programske datoteke

Uz to, zaronimo sada u neke primjere Awk izvršnih skripti, možemo započeti s jednostavnom skriptom u nastavku. Koristite svoj omiljeni uređivač za otvaranje nove datoteke 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!" }

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

chmod +x script.awk

Nakon toga, pokrenite ga:

./script.awk
Uzorak izlaza
Writing my first Awk executable script!

Kritički programer sigurno se pita: "Gdje su komentari? ", da, također možete uključiti komentare u svoju Awk skriptu. Pisanje komentara u vašem kodu uvijek je dobra programska praksa.

Pomaže drugim programerima koji pregledavaju vaš kod da razumiju što pokušavate postići u svakom dijelu 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 sustava pod imenom aaronkilik u datoteci računa, /etc/passwd, zatim ispisati 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, napravite skriptu izvršnom i izvršite je kao što je prikazano u nastavku:

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

U posljednjem primjeru u nastavku koristit ćemo naredbu do while 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 spremite datoteku, učinite skriptu izvršnom kao što smo to učinili prije. Nakon toga pokrenite:

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

Sažetak

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

Kao što sam spomenuo na početku, 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 okoline, nizovi, funkcije (ugrađene i definirane od strane korisnika) i dalje.

Postoje još dodatni dijelovi Awk programiranja koje treba naučiti i savladati, pa sam u nastavku dao neke poveznice na važne mrežne resurse koje možete koristiti da proširite svoje vještine Awk programiranja, ovo nije nužno sve što trebate, možete i pogledati potražite korisne knjige o programiranju za Awk.

Referentne veze: Korisnički vodič za GNU Awk i Programiranje jezika AWK

Za sva razmišljanja koja želite podijeliti ili pitanja upotrijebite obrazac za komentare u nastavku. Ne zaboravite uvijek ostati povezani s Tecmintom za još uzbudljivijih serija.