Einführung, Tutorial und Referenz

Awk

Records und Fields


Awk arbeitet unter der Annahme, dass die Eingabe strukturiert ist. Im einfachsten Fall kann dies zum Beispiel bedeuten, dass jede Eingabezeile einem Rekord entspricht und die einzelnen Wörter (Fields oder Felder) durch Tabulatoren oder Leerzeichen (Blanks) getrennt sind. Die Zeichen, die die Felder voneinander trennen werden auch häufig als Delimiter bezeichnet.

Hat man z.B. eine Datei mit folgendem Inhalt (Name und Telefonnummer):

Peter 2543
Frank 5498
Eva 9878
Jane 3254

Nehmen wir an, dass diese Datei unter dem namen phone.txt gespeichert ist.

awk '{ print $2, $1 }'  phone.txt

Obiges Kommando-Zeilen-Skript liefert z.B. folgende Ausgabe:
2543 Peter
5498 Frank
9878 Eva
3254 Jane
Mit der Variablen $1 spricht man innerhalb des Awk-Skriptes das erste Feld an, entsprechend mit $2 das zweite und so weiter.
$0 ist ein Bezeichner für die ganze Zeile. Das folgende Skript echoed deshalb lediglich die Datei:

awk '{ print $0 }'  phone.txt



© Copyright 2004 - 2008, Bodenseo, Linux-Kurse am Bodensee, Bernd Klein