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