n der Praxis bekommst du oft Rohdaten, die nicht perfekt strukturiert sind.
Bevor du sie mit awk analysieren kannst, musst du sie häufig erst bereinigen.
Hier kommt sed ins Spiel: Es bereitet die Daten vor, damit awk sie anschließend gezielt auswerten kann.

🔹 Ausgangssituation: Unsaubere Daten

Datei raw_data.txt:

# Nutzerstatistik September
Alice,25,Berlin
Bob,30,Hamburg
Charlie,22,Köln
# Ende der Datei

👉 Probleme:

  • Kommentare mit # sollen ignoriert werden.
  • Daten sind durch Kommas getrennt, nicht durch Leerzeichen.

🔹 Schritt 1: Kommentare entfernen mit sed

Mit sed löschen wir alle Zeilen, die mit # beginnen:

sed '/^#/d' raw_data.txt

Ausgabe:

Alice,25,Berlin
Bob,30,Hamburg
Charlie,22,Köln

👉 ^# bedeutet: Zeilenanfang gefolgt von #.
👉 d bedeutet: löschen.

🔹 Schritt 2: Daten für awk vorbereiten

Jetzt haben wir saubere CSV-Daten.
Mit awk können wir die Spalten auswerten.

Beispiel: Namen und Alter ausgeben:

sed '/^#/d' raw_data.txt | awk -F, '{print $1, $2}'

Ausgabe:

Alice 25
Bob 30
Charlie 22

👉 Hier arbeiten sed (Bereinigung) und awk (Analyse) in einer Pipeline zusammen.

🔹 Schritt 3: Statistiken mit awk

Nun lassen wir awk rechnen.
Beispiel: Durchschnittsalter berechnen:

sed '/^#/d' raw_data.txt | awk -F, '{sum += $2} END {print "Durchschnitt:", sum/NR}'

Ausgabe:

Durchschnitt: 25.6667

👉 sed entfernt die Störzeilen, awk analysiert die sauberen Daten.

🔹 Bonus: Werte transformieren mit sed

Angenommen, du willst alle Städte in Großbuchstaben umwandeln, bevor awk die Daten liest:

sed '/^#/d; s/\(,[0-9]*,\)\(.*\)/\1\U\2/' raw_data.txt | awk -F, '{print $1, $3}'

Ausgabe:

Alice BERLIN
Bob HAMBURG
Charlie KÖLN

👉 sed sorgt für die Transformation, awk liest die Werte korrekt aus.

🔹 Übungen

  1. Erstelle eine Datei data.txt mit folgendem Inhalt:
    # Teilnehmerliste
    Max,28,München
    Lisa,32,Stuttgart
    Tom,24,Dresden
    # EOF
  2. Entferne mit sed die Kommentare.
  3. Analysiere mit awk das Durchschnittsalter.
  4. Gib alle Namen + Städte aus.
  5. Bonus: Wandle mit sed die Namen in Großbuchstaben um und gib sie mit awk aus.

✅ Zusammenfassung

  • sed eignet sich perfekt, um Daten zu bereinigen und zu transformieren.
  • awk übernimmt anschließend die Analyse und Statistik.
  • Beide Tools lassen sich leicht in einer Pipeline kombinieren.
  • So kannst du auch unstrukturierte Daten effizient verarbeiten.

👉 Im nächsten Bonus-Artikel lernst du, wie man sed und awk kombiniert, um komplexe Aufgaben in einer einzigen Pipeline zu lösen.

 

📚 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