Kapitel 4: Mehrere sed-Befehle kombinieren und sed-Skripte verwenden

In den vorherigen Kapiteln hast du einzelne sed-Befehle kennengelernt. In der Praxis reicht das oft nicht aus – mehrere Anpassungen sollen in einem Durchlauf erfolgen.
  • In diesem Kapitel lernst du:
  • mehrere sed-Befehle zu kombinieren
  • warum sed-Skripte meist besser sind als lange Einzeiler
  • wie du Änderungen übersichtlich und wartbar umsetzt
🔹 Mehrere sed-Befehle in einem Einzeiler Mehrere Befehle können mit einem Semikolon (;) kombiniert werden. Beispiel: Kommentare und Leerzeilen entfernen, Text ersetzen (Vorschau)
sed '/^#/d; /^[[:space:]]*$/d; s/foo/bar/g' datei.txt
Was passiert hier?
  • /^#/d → löscht Kommentarzeilen
  • /^[[:space:]]*$/d → löscht Leerzeilen
  • s/foo/bar/g → ersetzt alle Vorkommen von foo durch bar
👉 Die Reihenfolge ist wichtig: Befehle werden von links nach rechts abgearbeitet. 🔴 Hinweis: Solche Einzeiler sind praktisch, werden aber schnell unübersichtlich.

🔹 Warum sed-Skripte besser sind

Sobald mehr als zwei Befehle nötig sind, solltest du ein sed-Skript verwenden. Vorteile:
  • besser lesbar
  • leichter wartbar
  • ideal für wiederholbare Aufgaben und Skripte

🔹 Ein einfaches sed-Skript erstellen

Datei cleanup.sed
/^#/d
/^[[:space:]]*$/d
s/foo/bar/g
👉 Jeder Befehl steht in einer eigenen Zeile. 👉 Die Syntax ist identisch zu Einzeilern – nur übersichtlicher. sed-Skript ausführen (Vorschau)
sed -f cleanup.sed datei.txt
Datei wirklich ändern (mit Backup – empfohlen)
sed -i.bak -f cleanup.sed datei.txt
📁 Backup:
datei.txt.bak

🔹 Praxisbeispiel: Konfigurationsdatei bereinigen

Ziel:
  • Kommentarzeilen entfernen
  • Leerzeilen entfernen
  • Leerzeichen um = normalisieren
cleanup.sed
/^#/d
/^[[:space:]]*$/d
s/[[:space:]]*=[[:space:]]*/=/
Anwenden:
sed -i.bak -f cleanup.sed app.conf
Ergebnis:
user=alice
timeout=30
log_level=info
👉 Dieses Vorgehen ist realistisch, robust und gut für Automatisierung geeignet. ⚠️ Hinweis: POSIX vs. GNU sed Einige Funktionen von sed sind GNU-Erweiterungen, z. B.:
  • -i (in-place editing)
  • erweiterte Regex-Flags wie I
Die Beispiele in diesem Kurs funktionieren zuverlässig unter Linux (GNU sed).

Übung: Mehrere sed-Befehle kombinieren

Aufgabe 1: Vorschau mit Einzeiler
  • Kommentare entfernen
  • Leerzeilen entfernen
sed '/^#/d; /^[[:space:]]*$/d' uebung4.txt
Aufgabe 2: sed-Skript erstellen
  • Erstelle ein sed-Skript, das:
  • Kommentare löscht
  • Leerzeilen entfernt
  • Leerzeichen um = entfernt
Aufgabe 3: Datei ändern (mit Backup) Wende dein sed-Skript so an, dass die Datei direkt geändert wird, aber mit Backup.

✅ Zusammenfassung

  • In diesem Kapitel hast du gelernt:
  • mehrere sed-Befehle mit ; zu kombinieren
  • warum lange Einzeiler schnell unübersichtlich werden
  • wie man sed-Skripte erstellt und ausführt
  • wie man Konfigurationsdateien sauber und reproduzierbar bearbeitet
👉 Faustregel: Einzeiler für schnelle Tests – sed-Skripte für alles, was bleiben soll. 👉 Im nächsten Kapitel lernst du, wie sed mit anderen Linux-Werkzeugen kombiniert wird – zum Beispiel mit grep, awk oder Pipes – um leistungsfähige Textverarbeitungsketten für den Alltag zu bauen.  

📚 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