|
|
Eine Version von awk ist heute in jedem Unix-System zu finden. Es ist aber auch für fast alle anderen Betriebssysteme verfügbar. Eine freie Version wird von der Free Software Foundation unter dem Namen "gawk" zur Verfügung gestellt.
awk arbeitet fast ausschließlich mit dem Datentyp Zeichenkette (engl. String). Daneben sind assoziative Arrays (d. h. mit Zeichenketten indizierte Arrays, auch Hashs genannt) und reguläre Ausdrücke grundlegende Bestandteile der Sprache.
Die Leistungsfähigkeit, Kompaktheit, aber auch die Beschränkungen der awk- und sed-Skripte regten Larry Wall zur Kreation der Sprache Perl an.
| Table of contents |
|
2 Variablen 3 Awk Befehle 4 Weblinks |
Die typische Ausführung eines awk-Programmes besteht darin, eine Eingabe (oft in Form einer Datei) durch ein awk-Programm in eine Ausgabe (oft eine andere Datei) umzuwandeln.
Programme sind aus einer Anzahl Muster-Befehl-Paare aufgebaut.
Aufbau eines Awk-Programms
/Muster 1/ { Befehl(e) }
/Muster 2/ { Befehl(e) }
...awk liest die Eingabe zeilenweise ein.
Die Muster werden mit jeder Eingabezeile verglichen, und wenn eine Übereinstimmung vorliegt, werden die nachfolgenden Befehle ausgeführt.
Die Muster werden nach den Regeln regulärer Ausdrücke interpretiert.
Spezielle Anweisungsformen sind:
; BEGIN { Befehl(e) }
Es steht dem Benutzer frei, Programmvariablen zu definieren.
awk selbst stellt für jede Eingabezeile eine Reihe voreingestellter Variablen zur Verfügung: "$0" ist die ganze Zeile. Diese ist durch Trennfelder (z. B. Leerzeichen oder Kommata, die von Benutzer einzustellen sind) in einzelne Felder (engl. FIELDS) zerlegt, die als "$1", "$2", ... ansprechbar sind. Dieses automatische Einlesen und Auftrennen der Eingabe machen awk zu einem attraktiven Werkzeug.
Die Syntax der Befehlsanweisungen von awk ähnelt der der Programmiersprache C.
Elementare Befehle sind Zuweisungen an Variable, Vergleiche zwischen Variablen, und Schleifen oder bedingte Befehlsausführungen (if-else).
Daneben gibt es Aufrufe, sowohl zu inplementierten als auch zu selbstprogrammierten Funktionen.
Die Datenausgabe ist durch den "print" Befehl gegeben.
Um etwa das zweite Feld einer eingabezeile auszudrucken, wird der Befehl
Awk Befehle
print $2
benutzt.Weblinks