In 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]*,)(.*)/1U2/' 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