Awk

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.

Table of contents
1 Aufbau eines Awk-Programms
2 Variablen
3 Awk Befehle
4 Weblinks

Aufbau eines Awk-Programms

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.

/Muster 1/ { Befehl(e) }
/Muster 2/ { Befehl(e) }
...

awk liest die Eingabe zeilenweise ein. Die Muster werden mit jeder Eingabezeile verglichen, und wenn eine Übereinstimmung vorliegt, werden die nachfolgenden Befehle ausgeführt. Die Muster werden nach den Regeln regulärer Ausdrücke interpretiert.

Spezielle Anweisungsformen sind:

; BEGIN { Befehl(e) }

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. 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.

Weblinks





Websites: Tagoror | Guajara | Tacoronte Guia | Todo Gomera | Deranet | Radioaficionados | Cinebso | Mi Buscador

Enciclopedia On Line: GNU FDL.