In diesem Kapitel setzen wir alles Gelernte in einem realistischen Szenario um. Ziel: Eine unsaubere Konfigurationsdatei soll automatisch:
  • Kommentarzeilen entfernen
  • Leerzeilen entfernen
  • Schreibweise normalisieren (key = valuekey=value)
  • bestimmte Werte setzen
  • fehlende Schlüssel ergänzen
So etwas ist typischer Admin-Alltag.

🔹 Ausgangssituation

Beispieldatei app.conf:
# Beispielkonfiguration

user = alice
timeout = 30

log_level = debug

# API Zugang fehlt
Problem:
  • unnötige Leerzeilen
  • uneinheitliche Formatierung
  • falscher Log-Level
fehlender api_key

🔹 Schritt 1: Bereinigung und Normalisierung

Wir erstellen ein sed-Skript. Datei cleanup.sed
/^#/d
/^[[:space:]]*$/d
s/^[[:space:]]*//
s/[[:space:]]*=[[:space:]]*/=/
s/^log_level=.*/log_level=info/
s/^timeout=.*/timeout=60/
Was passiert hier?
  • Kommentare löschen
  • Leerzeilen löschen
  • führende Leerzeichen entfernen
  • Leerzeichen um = entfernen
  • log_level auf info setzen
  • timeout auf 60 setzen
Vorschau (Datei bleibt unverändert)
sed -f cleanup.sed app.conf
Datei wirklich ändern (mit Backup)
sed -i.bak -f cleanup.sed app.conf
📁 Backup-Datei:
app.conf.bak

🔹 Schritt 2: Fehlenden Schlüssel ergänzen

Jetzt prüfen wir, ob api_key existiert. Falls nicht, hängen wir ihn an.
grep -q '^api_key=' app.conf || echo 'api_key=CHANGE_ME' >> app.conf
🔹 6.4 Komplettlösung als Skript (empfohlen) Wenn du das regelmäßig brauchst, ist ein kleines Bash-Skript ideal. Datei cleanup.sh
#!/bin/bash
set -euo pipefail

CONFIG="app.conf"
SED_SCRIPT="cleanup.sed"

# Backup der Originaldatei (zusätzlich zur sed .bak, je nach Wunsch)
cp -a "$CONFIG" "$CONFIG.pre-clean.bak"

# Bereinigen über temp-Datei (portabel und sicher)
sed -f "$SED_SCRIPT" "$CONFIG" > "$CONFIG.tmp"
mv "$CONFIG.tmp" "$CONFIG"

# api_key ergänzen, wenn er fehlt
grep -q '^api_key=' "$CONFIG" || echo 'api_key=CHANGE_ME' >> "$CONFIG"

echo "Bereinigung abgeschlossen: $CONFIG"
echo "Backup: $CONFIG.pre-clean.bak"
Ausführbar machen und starten:
chmod +x cleanup.sh
./cleanup.sh

🔹 Ergebnis

Vorher (Beispiel):
user = alice
timeout = 30

log_level = debug
Nachher:
user=alice
timeout=60
log_level=info
api_key=CHANGE_ME
⚠️ Warum kein „komplexer sed-Magietrick“? Man könnte vieles auch mit Hold-Space, Labels und Sprüngen lösen. Aber:
  • schwer lesbar
  • schwer wartbar
  • fehleranfällig
👉 Gute Praxis ist: verständlich + robust.

✅ Übung: Eigenes Mini-Praxisprojekt

Erstelle eine Datei server.conf:
cat > server.conf <<'EOF'
# Server
host = localhost

port = 8080
mode = dev
EOF
Aufgabe 1
  • Kommentare entfernen
  • Leerzeilen entfernen
  • Formatierung normalisieren (key=value)
Tipp (Vorschau):
sed '/^#/d; /^[[:space:]]*$/d; s/^[[:space:]]*//; s/[[:space:]]*=[[:space:]]*/=/' server.conf
Aufgabe 2
  • mode=production setzen
  • falls log_level fehlt → log_level=info anhängen
Tipp:
sed -i.bak 's/^mode=.*/mode=production/' server.conf
grep -q '^log_level=' server.conf || echo 'log_level=info' >> server.conf
  Aufgabe 3 Baue daraus ein Bash-Skript wie oben (cleanup.sh), das server.conf automatisch bereinigt. 🔹 Zusammenfassung (Kapitel 6)
  • In diesem Kapitel hast du gelernt:
  • wie man sed realistisch in einem Projekt einsetzt
  • wie man Konfigurationsdateien bereinigt und normalisiert
  • wann man sed sinnvoll mit anderen Tools kombiniert (grep)
  • warum einfache Lösungen oft die besten sind
👉 sed ist ein starker Filter – in echten Projekten kombiniert man ihn mit Shell-Logik. 👉 Im nächsten Kapitel schauen wir uns fortgeschrittene Konzepte von sed an:  

📚 Inhaltsverzeichnis

👉 sed Kapitel 1: Grundlagen von sed – erste Ersetzungen & Konzepte 👉 sed Kapitel 2: Suchen & Ersetzen mit sed – Grundlagen & Regex 👉 sed Kapitel 3: Zeilen bearbeiten mit sed 👉 sed Kapitel 4: sed-Skripte schreiben & kombinieren 👉 sed Kapitel 5: sed in Kombination mit anderen Tools 👉 sed Kapitel 6: Praxisprojekt – Konfigurationsdateien automatisch bereinigen & anpassen

⭐ Bonus-Kapitel

👉 sed Kapitel 7: Bonus – Profi-Tipps & Best Practices für sed im Alltag