Awk: Grundlagen: Das awk-Kommando
Das Kommando awk kann in einem Unix-Terminal aufgerufen werden.
Das awk-Skript kann direkt auf der Kommandozeile beim awk-Kommando angegeben werden oder awk
liest das Skript aus einer Datei. Die Dateieingabe erfolgt über die Standardeingabe oder auch durch
Einlesen von einer oder mehrerer Eingabedateien. Die Ausgabe erfolgt standardmäßig auf die Standardausgabe.
Mit den üblichen Unix-Umleitungsbefehlen kann aber auch in Dateien, auf die Standardfehlerausgabe, etc.
geschrieben werden. Mittels Pipeline kann awk auch mit anderen Unix-Kommandos interagieren.
Nachfolgend sind einige typische Aufrufvarianten des awk-Kommandos aufgelistet.
1) Das awk-Skript wird direkt beim awk-Kommando eingetippt und ausgeführt. Es wird von der Standardeingabe gelesen.
awk 'awk-skript'
Die Hochkommata ' dienen dazu, das Skript vor der Shell zu "verstecken". Beispiel für ein Skript ohne Eingabe:
awk 'BEGIN{print "Hello World!"}'
2) Das awk-Skript wird direkt beim awk-Kommando eingetippt und für die angegebene(n) Eingabedatei(en) ausgeführt
awk 'awk-skript' eingabedateien(en)
Die einzelnen Datensätze werden dann standardmäßig mittels des Newline-Zeichens \n (Enter) getrennt. Das Ende der Datei wird bei Unix durch Drücken der Tastenkombination Strg-D angezeigt.
3) Optional kann das awk-Skript in einer Skriptdatei im ASCII-Textformat gespeichert werden. Der awk-Aufruf sieht dann folgendermaßen aus
awk -f skriptdatei eingabedateien(en)
4) oder
awk -f skriptdatei
Die Option -f (file) signalisiert awk, dass die nachfolgende Angabe die Skriptdatei darstellt. Weitere awk-Optionen werden im Kapitel awk-Einstellungen behandelt.
5) Für direkt ausführbare awk-Skripte wird in der Skriptdatei als erste Zeile
#!/bin/awk -f
eingetragen. Der Pfad muss natürlich an die Gegebenheiten des Systems angepasst werden. Die Skriptdatei wird mittels chmod-Kommando als ausführbar markiert und schon kann die Datei wie ein gewöhnliches Programm aufgerufen werden, z.B.
./skriptdatei eingabedatei(en)
6) Pipeline
unix-kommando | awk 'awk-skript'
Beispiel für die Verwendung in einer Pipe:
echo „Ein Satz aus mehreren Wörtern“ | awk '{print $4}'
Ausgegeben wird das vierte Wort „mehreren“.
7) Umleitung
awk -f skriptdatei eingabedatei(en) > ausgabedatei