Awk: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 24: Zeile 24:
 
   Bedingung
 
   Bedingung
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
 +
=Links=
 +
*https://de.wikipedia.org/wiki/Awk

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


Links