Wéi schreift een Skripte mat der Awk Programméiersprooch - Deel 13


All laanscht vum Ufank vun der Awk Serie bis Deel 12, hu mir kleng Awk Kommandoen a Programmer op der Kommandozeil respektiv a Shell-Skripte geschriwwen.

Wéi och ëmmer, Awk, grad wéi Shell, ass och eng interpretéiert Sprooch, dofir, mat allem wat mir vun Ufank vun dëser Serie duerchgaange sinn, kënnt Dir elo Awk ausführbar Scripte schreiwen.

Ähnlech wéi mir e Shell-Skript schreiwen, fänken Awk Scripte mat der Linn un:

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

Zum Beispill op mengem System ass den Awk Utility an /usr/bin/awk lokaliséiert, dofir géif ech en Awk Skript wéi follegt starten:

#! /usr/bin/awk -f 

Erklärt d'Linn hei uewen:

  1. #! – als Shebang bezeechent, wat en Dolmetscher fir d'Instruktiounen an engem Skript spezifizéiert
  2. /usr/bin/awk – ass den Dolmetscher
  3. -f – Dolmetscheroptioun, benotzt fir e Programmdatei ze liesen

Dat gesot, loosst eis elo e puer Beispiller vun Awk ausführbare Skripte kucken, mir kënne mam einfache Skript hei drënner ufänken. Benotzt Äre Liiblingseditor fir eng nei Datei opzemaachen wéi follegt:

$ vi script.awk

A paste de Code hei ënnen an der Datei:

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

Späichert d'Datei a gitt eraus, da maacht de Skript ausführbar andeems Dir de Kommando hei drënner ausstellt:

$ chmod +x script.awk

Duerno lafen et:

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

E kriteschen Programméierer dobaussen muss froen, wou sinn d'Kommentaren?, jo, Dir kënnt och Kommentaren an Ärem Awk Skript enthalen.Kommentaren an Ärem Code schreiwen ass ëmmer eng gutt Programméierungspraxis.

Et hëlleft aner Programméierer duerch Äre Code ze kucken fir ze verstoen wat Dir probéiert an all Sektioun vun engem Skript oder Programmdatei z'erreechen.

Dofir kënnt Dir Kommentaren am Skript uewendriwwer enthalen wéi follegt.

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

Als nächst wäerte mir e Beispill kucken wou mir Input vun enger Datei liesen. Mir wëllen no engem Systembenotzer mam Numm aaronkilik an der Kontodatei sichen, /etc/passwd, da dréckt de Benotzernumm, d'Benotzer ID an d'Benotzer GID wéi follegt:

Drënner ass den Inhalt vun eisem Skript mam Numm 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 }

Späichert d'Datei a gitt eraus, maacht de Skript ausführbar an ausféiert et wéi hei ënnen:

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

Am leschte Beispill hei drënner wäerte mir do iwwerdeems Ausso benotzen fir Zuelen vun 0-10 auszedrécken:

Drënner ass den Inhalt vun eisem Skript genannt 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)
}

Nodeems Dir d'Datei gespäichert hutt, maacht de Skript ausféierbar wéi mir virdru gemaach hunn. Duerno lafen et:

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

Resumé

Mir sinn um Enn vun dëser interessanter Awk Serie komm, ech hoffen Dir hutt vill vun allen 13 Deeler geléiert, als Aféierung an d'Awk Programmiersprache.

Wéi ech vun Ufank u gesot hunn, ass Awk eng komplett Textveraarbechtungssprooch, aus deem Grond kënnt Dir méi aner Aspekter vun der Awk Programméiersprooch léieren wéi Ëmweltvariablen, Arrays, Funktiounen (built-in & Benotzerdefinéiert) an doriwwer eraus.

Et ginn nach zousätzlech Deeler vun der Awk Programméierung fir ze léieren a beherrschen, also, hei ënnen hunn ech e puer Linken op wichteg Online Ressourcen zur Verfügung gestallt, déi Dir benotze kënnt fir Är Awk Programméierungsfäegkeeten auszebauen, dëst sinn net onbedéngt alles wat Dir braucht, Dir kënnt och kucken eraus fir nëtzlech Awk programméiere Bicher.

Referenz Linken: AWK Sprooch Programméiere

Fir all Gedanken déi Dir wëllt deelen oder Froen, benotzt de Kommentarformular hei ënnen. Vergiesst net ëmmer verbonne mat Tecmint ze bleiwen fir méi spannend Serien.