Bisher hast du sed
-Befehle direkt in der Kommandozeile eingegeben.
Das ist praktisch für kleine Änderungen, wird aber schnell unübersichtlich, wenn mehrere Befehle nötig sind.
Mit sed-Skripten kannst du längere Bearbeitungen klar strukturieren, speichern und jederzeit erneut ausführen.
🔹 Mehrere Befehle kombinieren
Du kannst mehrere Befehle in einem sed
-Aufruf kombinieren:
Mit -e
sed -e 's/foo/bar/g' -e '/^#/d' datei.txt
👉 Ersetzt foo
durch bar
und löscht Kommentarzeilen.
Innerhalb eines Programms
sed 's/foo/bar/g; /^#/d' datei.txt
👉 Befehle werden durch ;
getrennt.
🔹 sed-Skripte in Dateien speichern
Lege eine Datei cleanup.sed
an:
# Kommentarzeilen entfernen /^#/d # foo durch bar ersetzen s/foo/bar/g # Zeilen 2–4 löschen 2,4d
Dann ausführbar machen:
sed -f cleanup.sed input.txt
👉 So kannst du komplexe Bearbeitungen mehrfach nutzen.
🔹 Skripte + Backups (-i
)
Willst du Änderungen direkt speichern:
sed -i.bak -f cleanup.sed input.txt
👉 Ergebnis wird in input.txt
überschrieben, ein Backup liegt in input.txt.bak
.
🔹 Beispiel: Logdatei bereinigen
Datei server.log
:
# Log Start INFO: Service gestartet DEBUG: Verbindung ok ERROR: Timeout INFO: Service beendet # Log Ende
Skript filter.sed
:
# Kommentare löschen /^#/d # DEBUG-Zeilen entfernen /DEBUG/d # INFO durch HINWEIS ersetzen s/INFO/HINWEIS/g
Ausführung:
sed -f filter.sed server.log
Ausgabe:
HINWEIS: Service gestartet ERROR: Timeout HINWEIS: Service beendet
👉 Mit einem Skript ist die Transformation klar dokumentiert.
🔹 Skripte mit Variablen kombinieren
Du kannst auch Shell-Variablen übergeben:
NAME="Alice" sed "s/User/$NAME/" template.txt
👉 Praktisch für Skripte, die je nach Kontext andere Werte einsetzen.
🔹 Skripte in der Praxis
- Konfigurationsdateien bereinigen
- Batch-Änderungen an mehreren Dateien
- Logfiles standardisieren
- Reports erzeugen (z. B. bestimmte Spalten markieren)
🔹 Übung
1. Erstelle eine Datei data.txt
:
# Kommentare foo bar foo baz
- Erstelle ein Skript
replace.sed
, das:- Kommentarzeilen löscht
foo
durchX
ersetzt- Zeile 3 entfernt
- Teste das Skript mit
sed -f replace.sed data.txt
.
2. Bonus
- Ergänze dein Skript so, dass es am Ende jeder Datei
--- ENDE ---
anhängt.
✅ Zusammenfassung
- Mit
-e
oder;
kannst du mehrere Befehle kombinieren. - In Skriptdateien (
.sed
) lassen sich Regeln übersichtlich speichern. - Mit
-f
rufst du Skripte auf, mit-i.bak
änderst du Dateien direkt mit Backup. - sed-Skripte sind ideal für wiederkehrende Aufgaben wie Logbereinigung, Texttransformationen und Massenänderungen.
👉 Im nächsten Kapitel schauen wir uns ein Praxisprojekt an: Wir schreiben ein sed-Skript, das eine Konfigurationsdatei automatisch bereinigt und anpasst.
📚 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