Sådan skriver man scripts ved hjælp af Awk-programmeringssprog - Del 13


Hele tiden fra begyndelsen af Awk-serien op til del 12 har vi skrevet små Awk-kommandoer og programmer på henholdsvis kommandolinjen og i shell-scripts.

Imidlertid er Awk, ligesom Shell, også et fortolket sprog, med alt det, vi har gennemgået fra starten af denne serie, kan du nu skrive Awk-eksekverbare scripts.

Svarende til hvordan vi skriver et shell-script, begynder Awk-scripts med linjen:

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

For eksempel på mit system er Awk-værktøjet placeret i/usr/bin/awk, derfor vil jeg starte et Awk-script som følger:

#! /usr/bin/awk -f 

Forklaring af linjen ovenfor:

  1. #! - kaldet Shebang, der specificerer en tolk til instruktionerne i et script
  2. /usr/bin/awk - er tolken
  3. -f - tolkemulighed, der bruges til at læse en programfil

Når det er sagt, lad os nu dykke ned i at se på nogle eksempler på Awk eksekverbare scripts, vi kan starte med det enkle script nedenfor. Brug din yndlingseditor til at åbne en ny fil som følger:

$ vi script.awk

Og indsæt koden nedenfor i filen:

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

Gem filen og afslut, og gør derefter scriptet eksekverbart ved at udstede kommandoen nedenfor:

$ chmod +x script.awk

Kør derefter det:

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

En kritisk programmør derude må spørge, "hvor er kommentarerne?", Ja, du kan også medtage kommentarer i dit Awk-script. At skrive kommentarer i din kode er altid en god programmeringspraksis.

Det hjælper andre programmører, der kigger igennem din kode, for at forstå, hvad du prøver at opnå i hvert afsnit i et script eller en programfil.

Derfor kan du medtage kommentarer i scriptet ovenfor som følger.

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

Dernæst skal vi se på et eksempel, hvor vi læser input fra en fil. Vi vil søge efter en systembruger ved navn aaronkilik i kontofilen/etc/passwd og derefter udskrive brugernavn, bruger-id og bruger-GID som følger:

Nedenfor er indholdet af vores script kaldet 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 }

Gem filen og afslut, gør scriptet eksekverbart og udfør det som nedenfor:

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

I det sidste eksempel nedenfor skal vi bruge do while-udsagn til at udskrive numre fra 0-10:

Nedenfor er indholdet af vores script kaldet 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)
}

Når du har gemt filen, skal du gøre scriptet eksekverbart, som vi har gjort før. Bagefter skal du køre det:

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

Resumé

Vi er kommet til slutningen af denne interessante Awk-serie, jeg håber, du har lært meget af alle de 13 dele som en introduktion til Awk-programmeringssprog.

Som jeg nævnte fra starten, er Awk et komplet tekstbehandlingssprog, af den grund kan du lære flere andre aspekter af Awk-programmeringssprog såsom miljøvariabler, arrays, funktioner (indbygget og brugerdefineret) og videre.

Der er endnu flere dele af Awk programmering at lære og mestre, så nedenfor har jeg givet nogle links til vigtige online ressourcer, som du kan bruge til at udvide dine Awk programmering færdigheder, disse er ikke nødvendigvis alt, hvad du har brug for, du kan også se ud til nyttige Awk-programmeringsbøger.

Reference links: AWK sprogprogrammering

For eventuelle tanker, du ønsker at dele eller spørgsmål, skal du bruge kommentarformularen nedenfor. Husk altid at holde forbindelsen til Tecmint for mere spændende serier.