awk ist eine Programmiersprache zur Bearbeitung und Auswertung einfacher Textdaten.
Sie war eine der ersten Werkzeuge, die in der Version 3 von UNIX erschien; sie wird auch heute noch vielfach zusammen mit sed in Shell-Skripten eingesetzt, um Daten zu bearbeiten, umzuformen oder auszuwerten.
Die Bezeichnung "awk" ist aus den Anfangsbuchstaben der Nachnamen ihrer drei Autoren (Alfred V. Aho, Peter J. Weinberger, Brian W. Kernighan) zusammengesetzt.
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.
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.
Führt die Befehl(e) aus, bevor Daten eingelesen werden.
END { Befehl(e) {
Führt die Befehl(e) aus, nachdem alle Daten bearbeitet wurden.
/Muster/
Wenn keine Befehle explizit gegeben sind, wird die eingegebene Zeile ausgedruckt, wenn sie dem gegebenen Muster entspricht.
{ action {
Wenn kein Muster gegeben ist, werden die Befehle für jede Zeile ausgeführt.
Variablen
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.
Awk Befehle
Die Syntax der Befehlsanweisungen von awk ähnelt der der Programmiersprache C, was vielleicht dann nicht verwundert, wenn man bedenkt, das einer der Autoren, Brian W. Kernighan, auch einer der Väter der Programmiersprache C ist.
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
print $2
benutzt.
Literatur
Alfred V. Aho, Brian W. Kernighan, and Peter J. Weinberger: The AWK Programming Language. Addison-Wesley, 1988, ISBN_0-201-07981-X
Dieser Beitrag ist aus der XML-Version der deutschen WikiPedia® entwickelt worden und unterliegt inhaltlich den GNU FDL-Lizenzbestimmungen. Linkziele außerhalb der wikipedia-Inhalte unterliegen den Urheberrechten der jeweiligen Anbieter
( DirectDownloads ) Kalenderblätter druckfertig aufbereitet für Schmuckblätter zum Selbstdrucken im Word DOC6/RTF Format, je Euro 5 über Click&BuyJAN | FEB | MÄRZ APRIL | MAI | JUNI JULI | AUG | SEPT OKT | NOV | DEZ
Das Geschenk für jeden Anlass, nicht nur bei 'runden' Jubiläen Andere Einzeltage oder Zahlungsarten bitte HIER bestellen
Diese Web Site verdient ihr Geld durch Produktverkäufe (CD-ROM, downloads) und in erster Linie durch Anzeigen. Wenn Sie als Webmaster zuverlässige Partner suchen für Ihr eigenes Anzeigenschäft, dürfen Sie sich gerne auf unsere Empfehlungen stützen:
z.B.: GigaCash & ProfiWin