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 Leerzeilens/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
