Eingebaute Variablen und Funktionen
| Name | Bedeutung |
|---|---|
$0, $1.. | Zeile, Felder |
NF, NR, FNR | Feldzahl, Zeilennummer |
FS, OFS, RS, ORS | Trenner |
FILENAME, ENVIRON | Datei, Umgebungsvariablen |
length, substr, index | Strings |
split, sub, gsub, match | Zerlegen/Ersetzen |
sprintf, toupper, tolower | Formatieren |
int, sqrt, sin, cos, exp, log, rand, srand | Mathematik |
system, getline, close | Prozesse 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
}1 1 Zeichen: LoL Befehl lieferte: hallo 3 a b 99.5%
Typische Fehler
echo "a b" | awk '{ print $1 'unexpected newline or end of string
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
Aufgabe
Werte eine Logdatei aus: Zähle Zeilen pro HTTP-Statuscode (Spalte 9).