EMZETT.
Login

Kurz: > Achtung: Shell-Anführungszeichen: Setze AWK-Programme in einfache Anführungszeichen, damit die Shell 1 nicht selbst ersetzt. In doppelten Anführungszeichen würde 1 von der Shell ausgewertet.

Teil des Kurses AWK

Kapitel 8 von 8 im Kurs AWK. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

Eingebaute Variablen und Funktionen

NameBedeutung
$0, $1..Zeile, Felder
NF, NR, FNRFeldzahl, Zeilennummer
FS, OFS, RS, ORSTrenner
FILENAME, ENVIRONDatei, Umgebungsvariablen
length, substr, indexStrings
split, sub, gsub, matchZerlegen/Ersetzen
sprintf, toupper, tolowerFormatieren
int, sqrt, sin, cos, exp, log, rand, srandMathematik
system, getline, closeProzesse und Dateien
BEGIN {
    srand(1)
    zufall = rand()
    print (zufall >= 0 && zufall < 1)
    print ENVIRON["HOME"] != ""
    print "Zeichen:", sprintf("%c%c%c", 76, 111, 76)
    cmd = "echo hallo"
    cmd | getline ausgabe
    close(cmd)
    print "Befehl lieferte:", ausgabe
    print system("exit 3")
    printf "%s %s\n", "a", "b"
    printf "%5.1f%%\n", 99.5
}

Ausgabe:

1
1
Zeichen: LoL
Befehl lieferte: hallo
3
a b
 99.5%

Typische Fehler

echo "a b" | awk '{ print $1 '

Fehlermeldung:

unexpected newline or end of string

Achtung

Shell-Anführungszeichen: Setze AWK-Programme in einfache Anführungszeichen, damit die Shell $1 nicht selbst ersetzt. In doppelten Anführungszeichen würde $1 von der Shell ausgewertet.

Hinweis

Nur die Ausgabe von awk selbst ist hier gezeigt. Programme funktionieren mit gawk; reines POSIX-awk (z. B. macOS) kennt asort, gensub und PROCINFO nicht.

Weiterführende Quellen

  • „The AWK Programming Language“ (Aho, Kernighan, Weinberger)
  • gnu.org/software/gawk/manual: das gawk-Handbuch (englisch)
  • grymoire.com/Unix/Awk.html: Tutorial mit vielen Beispielen

Merke

  • AWK = Muster + Aktion, zeilenweise und feldweise
  • Ideal für Berichte, Zählungen und Spaltenverarbeitung
  • Für größere Programme sind Python oder Perl oft bequemer – für Einzeiler ist AWK unschlagbar

Übungsaufgabe

Werte eine Logdatei aus: Zähle Zeilen pro HTTP-Statuscode (Spalte 9).

Quiz zur Selbstkontrolle

Weiter im Kurs

Zurück: Praxisprojekte

Alle Kapitel: AWK im Überblick