Awk: Unterschied zwischen den Versionen
| Zeile 6: | Zeile 6: | ||
Die Sprache arbeitet fast ausschließlich mit dem Datentyp Zeichenkette. Daneben sind assoziative Arrays (d. h. mit Zeichenketten indizierte Arrays, auch Hashs genannt) und reguläre Ausdrücke grundlegende Bestandteile der Sprache. | Die Sprache arbeitet fast ausschließlich mit dem Datentyp Zeichenkette. Daneben sind assoziative Arrays (d. h. mit Zeichenketten indizierte Arrays, auch Hashs genannt) und reguläre Ausdrücke grundlegende Bestandteile der Sprache. | ||
== Aufbau eines Programms == | == Aufbau eines Programms == | ||
| − | Die typische Ausführung eines awk-Programms besteht darin, Operationen – etwa Ersetzungen – auf einem Eingabetext durchzuführen. Dafür wird der Text zeilenweise eingelesen und anhand eines gewählten Trenners – üblicherweise eine Serie von Leerzeichen und/oder | + | Die typische Ausführung eines awk-Programms besteht darin, Operationen – etwa Ersetzungen – auf einem Eingabetext durchzuführen. Dafür wird der Text zeilenweise eingelesen und anhand eines gewählten Trenners – üblicherweise eine Serie von Leerzeichen und/oder Tabulatorzeichen – in Felder aufgespalten. Anschließend werden die awk-Anweisungen auf die jeweilige Zeile angewandt. |
awk-Anweisungen haben folgende Struktur: | awk-Anweisungen haben folgende Struktur: | ||
| Zeile 13: | Zeile 13: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | Für die eingelesene Zeile wird ermittelt, ob sie die Bedingung | + | Für die eingelesene Zeile wird ermittelt, ob sie die Bedingung erfüllt. Ist die Bedingung erfüllt, wird der Code innerhalb des von geschweiften Klammern umschlossenen Anweisungsblocks ausgeführt. |
Abweichend davon | Abweichend davon | ||
kann ein Statement auch nur aus einer Aktion | kann ein Statement auch nur aus einer Aktion | ||
Version vom 27. November 2019, 14:49 Uhr
Grundlegendes
awk ist eine Programmiersprache (Skriptsprache) zur Bearbeitung und Auswertung strukturierter Textdaten, beispielsweise CSV-Dateien. Der zugehörige Interpreter war eines der ersten Werkzeuge, das in der Version 3 von Unix erschien; es wird auch heute noch vielfach zusammen mit sed in Shell-Skripten eingesetzt, um Daten zu bearbeiten, umzuformen oder auszuwerten. Der Name "awk" ist aus den Anfangsbuchstaben der Nachnamen ihrer drei Autoren Alfred V. Aho, Peter J. Weinberger und Brian W. Kernighan zusammengesetzt.
Eine Version von awk ist heute in fast jedem Unix-System, das historisch auf UNIX zurückzuführen ist, sowie in jeder Linux-Distribution zu finden. Ein vergleichbares Programm ist aber auch für fast alle anderen Betriebssysteme verfügbar.
Die Sprache arbeitet fast ausschließlich mit dem Datentyp Zeichenkette. Daneben sind assoziative Arrays (d. h. mit Zeichenketten indizierte Arrays, auch Hashs genannt) und reguläre Ausdrücke grundlegende Bestandteile der Sprache.
Aufbau eines Programms
Die typische Ausführung eines awk-Programms besteht darin, Operationen – etwa Ersetzungen – auf einem Eingabetext durchzuführen. Dafür wird der Text zeilenweise eingelesen und anhand eines gewählten Trenners – üblicherweise eine Serie von Leerzeichen und/oder Tabulatorzeichen – in Felder aufgespalten. Anschließend werden die awk-Anweisungen auf die jeweilige Zeile angewandt.
awk-Anweisungen haben folgende Struktur:
Bedingung { Anweisungsblock }
Für die eingelesene Zeile wird ermittelt, ob sie die Bedingung erfüllt. Ist die Bedingung erfüllt, wird der Code innerhalb des von geschweiften Klammern umschlossenen Anweisungsblocks ausgeführt. Abweichend davon kann ein Statement auch nur aus einer Aktion
{ Anweisungsblock }
oder nur aus einer Bedingung
Bedingung