awk ist eine Sprache zur Verarbeitung von Textdateien unter Linux. Die Bezeichnung awk setzt sich einfach aus den Anfangsbuchstaben der Nachnamen der Erfinder dieser Sprache, Aho, Kernighan und Weinberger, zusammen.
Der awk ist ein Interpreter. Im einfachsten Fall ist das auszuführende Script so kurz, daß man es gleich mit auf der Kommandozeile angeben kann:
awk [Optionen] [--] Programmtext Datei ...
Folgendes Beispiel gibt Namen der Benutzer und das jeweilige Home-Verzeichnis aus:
awk -F: '{print $5, $6}' /etc/passwd
Dabei gibt die Option
-F:
an, daß der Doppelpunkt als Trennzeichen zwischen Feldern aufgefaßt werden soll. Das eigentliche awk -Programm besteht aus
{print $1, $6}
Die Hochkommas verstecken die im Script enthaltenen Sonderzeichen vor der Shell. Die geschweiften Klammern gehören zum Programm und sind auch wichtig, wie wir später noch sehen werden.
Im awk werden Anweisungen, ähnlich der Shell, durch Semikolon getrennt. Damit kann man auch mehrere Anweisungen auf der Kommandozeile unterbringen. Trotzdem ist die Grenze der Übersichtlichkeit schnell erreicht und man schreibt das awk -Script lieber in eine Datei. Der Programmaufruf sieht dann so aus:
awk [Optionen] -f Programmdatei [--] Datei ...
Mehrere Prozesse gleichzeitig killen
in diesem Fall sind es mehrere awstats Prozesse die gelöscht werden sollen
kill `ps ax | grep awstats | awk '{print $1}'`