Website-Suche

So schreiben Sie Skripte mit der Programmiersprache Awk – Teil 13


Vom Beginn der Awk-Reihe bis hin zu Teil 12 haben wir kleine Awk-Befehle und -Programme auf der Befehlszeile bzw. in Shell-Skripten geschrieben.

Allerdings ist Awk ebenso wie Shell eine interpretierte Sprache. Daher können Sie mit allem, was wir seit Beginn dieser Serie besprochen haben, jetzt ausführbare Awk-Skripte schreiben.

Ähnlich wie wir ein Shell-Skript schreiben, beginnen Awk-Skripte mit der Zeile:

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

Auf meinem System befindet sich das Dienstprogramm Awk beispielsweise in /usr/bin/awk, daher würde ich ein Awk-Skript wie folgt starten:

#! /usr/bin/awk -f 

Erklären Sie die obige Zeile:

  1. #! – wird als Shebang bezeichnet und gibt einen Interpreter für die Anweisungen in einem Skript an
  2. /usr/bin/awk – ist der Interpreter
  3. -f – Interpreteroption, die zum Lesen einer Programmdatei verwendet wird

Lassen Sie uns nun jedoch einige Beispiele für ausführbare Awk-Skripte betrachten. Wir können mit dem einfachen Skript unten beginnen. Verwenden Sie Ihren bevorzugten Editor, um eine neue Datei wie folgt zu öffnen:

vi script.awk

Und fügen Sie den folgenden Code in die Datei ein:

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

Speichern Sie die Datei und beenden Sie den Vorgang. Machen Sie dann das Skript ausführbar, indem Sie den folgenden Befehl eingeben:

chmod +x script.awk

Führen Sie es anschließend aus:

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

Ein kritischer Programmierer da draußen muss sich fragen: „Wo sind die Kommentare?“ Ja, Sie können auch Kommentare in Ihr Awk-Skript einfügen. Das Schreiben von Kommentaren in Ihren Code ist immer eine gute Programmierpraxis.

Es hilft anderen Programmierern, Ihren Code durchzusehen, um zu verstehen, was Sie in den einzelnen Abschnitten eines Skripts oder einer Programmdatei erreichen möchten.

Daher können Sie wie folgt Kommentare in das obige Skript einfügen.

#!/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ächstes schauen wir uns ein Beispiel an, bei dem wir Eingaben aus einer Datei lesen. Wir möchten in der Kontodatei /etc/passwd nach einem Systembenutzer namens aaronkilik suchen und dann den Benutzernamen, die Benutzer-ID und den Benutzer ausdrucken GID wie folgt:

Nachfolgend finden Sie den Inhalt unseres Skripts namens 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 }

Speichern Sie die Datei und beenden Sie den Vorgang, machen Sie das Skript ausführbar und führen Sie es wie folgt aus:

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

Im letzten Beispiel unten verwenden wir die do while-Anweisung, um Zahlen von 0-10 auszugeben:

Nachfolgend finden Sie den Inhalt unseres Skripts namens 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)
}

Machen Sie das Skript nach dem Speichern der Datei wie zuvor ausführbar. Führen Sie es anschließend aus:

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

Zusammenfassung

Wir sind am Ende dieser interessanten Awk-Reihe angelangt. Ich hoffe, Sie haben aus allen 13 Teilen viel gelernt, als Einführung in die Programmiersprache Awk.

Wie ich eingangs erwähnt habe, ist Awk eine vollständige Textverarbeitungssprache. Aus diesem Grund können Sie mehr über andere Aspekte der Programmiersprache Awk lernen, wie z. B. Umgebungsvariablen, Arrays, Funktionen (integriert und benutzerdefiniert) und mehr.

Es gibt noch weitere Teile der Awk-Programmierung zu erlernen und zu beherrschen. Deshalb habe ich unten einige Links zu wichtigen Online-Ressourcen bereitgestellt, mit denen Sie Ihre Awk-Programmierkenntnisse erweitern können. Das ist nicht unbedingt alles, was Sie brauchen, Sie können auch nachsehen auf der Suche nach nützlichen Awk-Programmierbüchern.

Referenzlinks: Das GNU Awk-Benutzerhandbuch und die AWK-Sprachprogrammierung

Wenn Sie Gedanken oder Fragen mitteilen möchten, verwenden Sie das Kommentarformular unten. Denken Sie daran, immer mit Tecmint in Verbindung zu bleiben, um weitere spannende Serien zu erhalten.