Al vanaf het begin van de Awk serie tot en met Deel 12, hebben we kleine Awk commando’s en programma’s geschreven op respectievelijk de command line en in shell scripts.

Maar Awk is, net als Shell, ook een geïnterpreteerde taal, dus met alles wat we vanaf het begin van deze serie hebben doorgelopen, kun je nu ook Awk executable scripts schrijven.

Gelijk aan hoe we een shell script schrijven, beginnen Awk scripts met de regel:

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

Op mijn systeem bevindt het Awk-hulpprogramma zich bijvoorbeeld in /usr/bin/awk, daarom zou ik een Awk-script als volgt starten:

#! /usr/bin/awk -f 

Uitleg van de bovenstaande regel:

  1. #! – aangeduid als Shebang, die een interpreter specificeert voor de instructies in een script
  2. /usr/bin/awk – is de interpreter
  3. -f – interpreter optie, wordt gebruikt om een programmabestand te lezen

Dit gezegd hebbende, laten we nu duiken in het bekijken van enkele voorbeelden van Awk uitvoerbare scripts, we kunnen beginnen met het eenvoudige script hieronder. Gebruik uw favoriete editor om een nieuw bestand te openen:

$ vi script.awk

En plak de onderstaande code in het bestand:

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

Bewaar het bestand en sluit af, maak vervolgens het script uitvoerbaar door het onderstaande commando uit te voeren:

$ chmod +x script.awk

Daarna kunt u het uitvoeren:

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

Een kritische programmeur vraagt zich vast af, “waar zijn de commentaren?”, ja, je kunt ook commentaar opnemen in je Awk script. Het schrijven van commentaar in je code is altijd een goede programmeerpraktijk.

Het helpt andere programmeurs die door je code kijken om te begrijpen wat je probeert te bereiken in elke sectie van een script of programmabestand.

Daarom kun je als volgt commentaar opnemen in het bovenstaande script.

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

Volgende zullen we kijken naar een voorbeeld waarbij we invoer uit een bestand lezen. We willen zoeken naar een systeemgebruiker met de naam aaronkilik in het accountbestand, /etc/passwd, en vervolgens de gebruikersnaam, de gebruikers-ID en de gebruikers-GID als volgt afdrukken:

Hieronder staat de inhoud van ons script met de naam second.awk.

#! /usr/bin/awk -f #use BEGIN sepecial character to set FS built-in variableBEGIN { FS=":" }#search for username: aaronkilik and print account details /aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }

Bewaar het bestand en sluit af, maak het script uitvoerbaar en voer het uit zoals hieronder:

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

In het laatste voorbeeld hieronder zullen we do while statement gebruiken om getallen van 0-10 af te drukken:

Hieronder staat de inhoud van ons script met de naam do.awk.

#! /usr/bin/awk -f #printing from 0-10 using a do while statement #do while statement BEGIN {#initialize a counterx=0do { print x; x+=1;}while(x<=10)}

Na het opslaan van het bestand, maakt u het script uitvoerbaar zoals we eerder hebben gedaan. Voer het daarna uit:

$ chmod +x do.awk$ ./do.awk
Sample Output
012345678910

Samenvatting

We zijn aan het einde gekomen van deze interessante Awk serie, ik hoop dat je veel geleerd hebt van alle 13 delen, als een introductie tot de Awk programmeertaal.

Zoals ik in het begin al aangaf, is Awk een complete tekstverwerkende taal, om die reden kunt u meer andere aspecten van de Awk programmeertaal leren, zoals omgevingsvariabelen, arrays, functies (ingebouwde & gebruiker gedefinieerd) en verder.

Er zijn nog meer onderdelen van Awk programmeren om te leren en onder de knie te krijgen, dus, hieronder, heb ik een aantal links naar belangrijke online bronnen die je kunt gebruiken om je Awk programmeer vaardigheden uit te breiden, deze zijn niet per se alles wat je nodig hebt, je kunt ook uitkijken naar nuttige Awk programmeer boeken.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *