Jetzt setzen wir alles, was du bisher gelernt hast, in einem
realistischen Projekt um.
Ein typisches Einsatzfeld für awk ist die
Analyse von Webserver-Logs - z. B. von Apache oder Nginx.
Diese Logs enthalten viele Informationen, die du mit awk schnell auswerten kannst.
🔹 Beispiel-Logdatei
192.168.1.10 - - [20/Sep/2025:14:33:15 +0200] "GET /index.html HTTP/1.1" 200 532
Die Felder enthalten:
$1 = IP
$4 und $5 = Datum/Uhrzeit (geteilt, weil ein Space im Timestamp ist)
$6 $7 $8 = Request-Teil ("GET, /pfad, HTTP/1.1")
$9 = Statuscode
$10 = Bytes👉 Mit awk kannst du diese Felder aufschlüsseln.
🔹 IP-Adressen zählen
Welche IPs greifen am häufigsten zu?
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head
Ausgabe (Beispiel):
120 192.168.1.10
85 203.0.113.5
30 10.0.0.7
👉 So erkennst du schnell die aktivsten Clients.
🔹 Statuscodes auswerten
Wie viele Anfragen enden mit welchem Statuscode?
awk '{print $9}' access.log | sort | uniq -c | sort -nr
Ausgabe:
200 200
35 404
10 500
👉 Jetzt weißt du, wie oft Seiten erfolgreich, nicht gefunden oder fehlerhaft waren.
🔹 Beliebteste Seiten finden
awk '{print $7}' access.log | sort | uniq -c | sort -nr | head
Ausgabe (Beispiel):
150 /index.html
120 /shop.html
45 /kontakt.html
👉 Feld
$7 enthält den
Pfad der URL.
🔹 Datenmenge summieren
Wie viele Bytes wurden insgesamt übertragen?
awk '{sum += $10} END {print "Gesamt:", sum, "Bytes"}' access.log
Ausgabe:
Gesamt: 934520 Bytes
👉 Damit kannst du die Serverlast grob einschätzen.
🔹 Uhrzeiten analysieren
Wann war die Last am höchsten?
awk '{h=substr($4,14,2); c[h]++} END{for (h in c) print c[h], h}' access.log | sort -nr
Ausgabe (Beispiel):
90 14
70 15
35 12
👉
$2 nach
-F: gibt die
Stunde aus dem Zeitstempel zurück.
🔹 Übung
- Lade ein Apache- oder Nginx-Logfile von deinem eigenen System (
/var/log/apache2/access.log oder /var/log/nginx/access.log).
- Zähle die häufigsten IPs.
- Liste alle Statuscodes auf.
- Finde heraus, welche Seite am häufigsten aufgerufen wurde.
- Berechne die gesamte übertragene Datenmenge.
- Bonus: Finde die „Rush Hour“ deines Servers - welche Stunde war am aktivsten?
✅ Zusammenfassung
- awk eignet sich perfekt für Log-Analyse.
- Typische Aufgaben: IPs zählen, Statuscodes auswerten, beliebteste Seiten finden, Datenmenge summieren.
- Mit Pipes (
sort, uniq, head) kannst du die Ergebnisse verfeinern.
- So erhältst du wertvolle Einblicke in deinen Server – ganz ohne externe Tools.
👉
Im nächsten Kapitel bekommst du noch
Bonusartikel, in denen wir awk und sed
kombinieren – damit du beide Tools zusammen als Power-Werkzeug nutzen kannst.
📚 Inhaltsverzeichnis
👉
awk Kapitel 1: Felder & Zeilen verstehen
👉
awk Kapitel 2: Muster & Bedingungen in awk
👉
awk Kapitel 3: Textbearbeitung & Formatierung mit awk
👉
awk Kapitel 4: Berechnungen & Statistiken mit awk
👉
awk Kapitel 5: Eigene awk-Skripte schreiben
👉
awk Kapitel 6: Praxisprojekt – Webserver-Logs analysieren mit awk
⭐ Bonus-Kapitel
👉
awk Bonus 1: Unterschiede & Gemeinsamkeiten von sed und awk
👉
awk Bonus 2: Textbereinigung mit sed, Datenanalyse mit awk
👉
awk Bonus 3: Kombinieren in einer Pipeline – sed & awk zusammen einsetzen
👉
awk Bonus 4: Praxisprojekt - Logdateien filtern, bereinigen und auswerten
👉
awk Bonus 5: Profi-Tricks - Reguläre Ausdrücke für sed & awk im Zusammenspiel