Awk: Einleitung

Aus Wikibooks


Allgemeines[Bearbeiten]

awk ist ein Werkzeug für die Analyse und Manipulation von Textdateien. Der Begriff awk steht für die Skriptsprache awk, den awk-Interpreter und auch das Unix-Kommando awk.

awk gibt es in mehreren Varianten, zum Beispiel gawk (GNU awk), nawk (new awk) oder oawk (old awk). awk ist auf fast allen Unix-Systemen anzutreffen, aber auch für MS Windows sind entsprechend adaptierte Softwarepakete erhältlich. Dadurch, dass awk auf vielen Computerplattformen vorhanden ist können einmal erstellte awk-Skripte direkt oder mit minimalen Anpassungen auf all diesen Systemen eingesetzt werden.

awk ist spezialisiert auf die Mustererkennung und Datenverarbeitung bei spaltenförmig organisierten Textdateien. Für die Verarbeitung von Binärdateien ist awk nicht konzipiert. Die Syntax und die lexikalischen Elemente der Skriptsprache awk sind teils eng an die Programmiersprache C angelehnt.

Typische Fälle für einen awk-Einsatz sind:

  • Reportgenerierung
  • Prototyping
  • Dateikonvertierung
  • Extrahierung von Dateiinhalten

Entwicklungsgeschichte[Bearbeiten]

Die Bezeichnung awk leitet sich von den Programmautoren A. V. Aho, P. J. Weinberger und B. W. Kernighan ab. awk entstand 1977 und wurde 1985 durch die verbesserte Version nawk abgelöst. Auf Linux-Systemen ist gawk anzutreffen, welches seit 1986 zur Verfügung steht und seither laufend weiterentwickelt wird.

awk-Alternativen[Bearbeiten]

awk ist ein gutes Werkzeug für spezielle Einsatzfälle. Aber auch für diese speziellen Einsatzfälle gibt es Konkurrenz. awk zeichnet sich durch seine Einfachheit und schnelle Erlernbarkeit aus und ist in vielen Umgebungen standardmäßig verfügbar. Werden die Skripte komplexer, kann der Einsatz einer mächtigeren Skriptsprache wie Perl oder Python sinnvoll sein. Ist hohe Geschwindigkeit bei der Programmausführung gefordert, so spricht einiges für den Einsatz kompilierter Programme. Wer kryptische Anweisungen schätzt, kann für Textmanipulationen auch auf das Programm sed (stream editor) zurückgreifen; dafür steht ihm, wie im awk, das mächtige Instrument der Regulären Ausdrücke zur Verfügung, wohingegen die Möglichkeiten eines BEGIN- oder END-Blockes fehlen.

Konvertierungsprogramme[Bearbeiten]

Zum Zwecke einer Konvertierung von awk-Skripten in andere Programmiersprachen stehen Konvertierungsprogramme zur Verfügung. Als Beispiel sei a2p für die automatisierte Übersetzung von awk-Code in Perl-Code genannt.