Kako pisati skripte z uporabo programskega jezika Awk - 13. del


Vse od začetka serije Awk do 12. dela v ukazni vrstici in v skriptih lupine pišemo majhne ukaze in programe Awk.

Vendar je Awk, tako kot Shell, tudi interpretiran jezik, zato lahko z vsem, po čemer smo hodili od začetka te serije, zdaj pišemo izvršljive skripte Awk.

Podobno kot pišemo lupinski skript, se skripti Awk začnejo z vrstico:

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

Na primer, v mojem sistemu se pripomoček Awk nahaja v/usr/bin/awk, zato bi skript Awk zagnal na naslednji način:

#! /usr/bin/awk -f 

Razlaga zgornje vrstice:

  1. #! - imenovan Shebang, ki določa tolmača za navodila v skriptu
  2. /usr/bin/awk - je tolmač
  3. -f - možnost tolmača, ki se uporablja za branje programske datoteke

Torej, poglejmo si nekaj primerov izvedljivih skriptov Awk, lahko začnemo s preprostim skriptom spodaj. Z najljubšim urejevalnikom odprite novo datoteko na naslednji način:

$ vi script.awk

In v datoteko prilepite spodnjo kodo:

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

Shranite datoteko in zapustite, nato pa naredite skript izvedljivim, tako da izdate spodnji ukaz:

$ chmod +x script.awk

Nato zaženite:

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

Kritičen programer se mora vprašati, "kje so komentarji?", Da, komentarje lahko vključite tudi v svoj skript Awk. Pisanje komentarjev v kodo je vedno dobra praksa pri programiranju.

Drugim programerjem, ki pregledujejo vašo kodo, pomaga razumeti, kaj poskušate doseči v vsakem odseku skripta ali programske datoteke.

Zato lahko v zgornji skript vključite komentarje, kot sledi.

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

Nato si bomo ogledali primer, ko beremo vnos iz datoteke. V datoteki računa želimo poiskati sistemskega uporabnika z imenom aaronkilik,/etc/passwd, nato natisniti uporabniško ime, ID uporabnika in GID uporabnika, kot sledi:

Spodaj je vsebina našega skripta, imenovanega 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 }

Shranite datoteko in zapustite, naredite skript izvršljiv in ga zaženite, kot spodaj:

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

V zadnjem primeru spodaj bomo za izpis številk od 0 do 10 uporabili izjavo do while:

Spodaj je vsebina našega skripta, imenovanega 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)
}

Po shranitvi datoteke naredite skript izvršljiv, kot smo to storili že prej. Nato zaženite:

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

Povzetek

Prišli smo do konca te zanimive serije Awk, upam, da ste se iz vseh 13 delov veliko naučili kot uvod v programski jezik Awk.

Kot sem že omenil, je Awk popoln jezik za obdelavo besedila, zato se lahko naučite več drugih vidikov programskega jezika Awk, kot so okoljske spremenljivke, polja, funkcije (vgrajene in uporabniško določene) in pozneje.

Obstajajo še dodatni deli programiranja Awk za učenje in obvladovanje, zato sem spodaj navedel nekaj povezav do pomembnih spletnih virov, s katerimi lahko razširite svoje spretnosti programiranja Awk. To niso nujno vse, kar potrebujete, lahko tudi pogledate za uporabne knjige o programiranju Awk.

Referenčne povezave: Programiranje jezikov AWK

Za vse misli, ki jih želite deliti, ali vprašanja, uporabite spodnji obrazec za komentar. Ne pozabite, da vedno ostanete povezani s Tecmintom za zanimivejše serije.