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
- Erstelle eine Datei
data.txt
mit folgendem Inhalt:# Teilnehmerliste Max,28,München Lisa,32,Stuttgart Tom,24,Dresden # EOF
- Entferne mit sed die Kommentare.
- Analysiere mit awk das Durchschnittsalter.
- Gib alle Namen + Städte aus.
- 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