Die Programmiersprache awk ist nach ihren drei Erfindern Alfred V. Aho, Peter J. Weinberger und Brian W. Kernighan benannt.
Sie dient der Manipulation von Daten aus Dateien oder von der Standardeingabe.
Die wichtigste Funktion von awk besteht im Durchsuchen von Daten nach bestimmten Mustern. Diesen
Mustern können Befehle oder Befehlsgruppen zugeordnet werden.
Damit ist awk besonders gut für die Verarbeitung der Ausgabe anderer Programme und Unix-Befehle geeignet.
In den meisten Fällen wird awk von der Kommandozeile oder aus Shell-Scripten aufgerufen.
Wichtige Anwendungsgebiete von awk sind:
- das Auswerten, Filtern und Aufbereiten von Daten
- die Prüfung von Daten
- die Transformation von Daten in andere Formate
- die Erleichterung von administrativen Aufgaben
Awk gehört zu den interpretierten Programmiersprachen.
Mit diesen Programmiersprachen hat awk bestimmte Vor- und Nachteile gemeinsam.
Weitere interpretierte Programmiersprachen sind zum Beispiel:
- Perl
- Script-Fu unter GIMP
- AutoLISP unter AutoCAD
Die Originalversion von awk wurde 1977 an den AT & T Bell Laboratories entwickelt. Aho, Weinberger und Kernighan
haben 1987 auch ein Lehrbuch zu awk geschrieben und die
Beispiele
dieses Lehrbuchs im Internet veröffentlicht.
Im Jahre 1985 wurde eine erweiterte Version von awk vorgestellt, die unter anderem auch benutzerdefinierte
Funktionen möglich machte. Die Implementierung
gawk wird seit 1986 entwickelt.
Die Sprache awk steht unter Linux und auf einigen anderen Betriebssystemen (Unix, Windows...)
entweder als Teil des Betriebssystems oder in der POSIX-kompatiblen GNU-Version
gawk zur Verfügung.
Jedes awk-Programm wird als Quelltext durch den Interpreter
/bin/awk umgesetzt.
Alle Beispiele dieses Vortrags wurden mit gawk erstellt und getestet:
Wer bereits in einer Programmiersprache wie C oder Pascal programmiert hat, findet leicht Zugang zu awk.
Einsteiger können die Arbeit an einem aktuellen Problem nutzen, um sich in awk einzuarbeiten.
Folgende Merkmale charakterisieren awk als Programmiersprache:
- Einfache und zusammengesetzte Datentypen
- Wiederholungsanweisungen (Schleifen)
- Kontrollstrukturen
- benutzerdefinierte Funktionen
Für die Programmierung mit awk benötigt man keinen hochmodernen und teuren Computer. Wichtig ist
vor allem, dass auf diesem Computer ein geeignetes Betriebssystem installiert ist.
Programme in awk können mit jedem ASCII-Editor erstellt werden.
Das Erlernen von awk erfordert also auch keine hohen Investitionen. Mit einem einfachen Rechner, einer ordentlichen
Linux-Distribution
und einer Zusammenstellung von freien Programmen und Dokumentationen kommt man relativ schnell zum Erfolg.