Einer der meistgenutzten Befehle in
sed ist
s - der
Substitute-Befehl.
Mit ihm kannst du gezielt Texte oder Muster suchen und durch andere ersetzen.
In diesem Kapitel schauen wir uns alle Varianten im Detail an, inklusive
Flags,
Regex und
praktischen Tricks.
🔹 Syntax von s
sed 's/MUSTER/ERSATZ/FLAGS' datei
MUSTER → wonach gesucht wird (String oder Regex).
ERSATZ → womit es ersetzt wird.
FLAGS → Optionen wie g (global) oder i (case-insensitive).
👉 Standardmäßig ersetzt
sed nur das
erste Vorkommen pro Zeile.
🔹 Einfaches Ersetzen
Beispiel:
foo durch
bar ersetzen:
sed 's/foo/bar/' datei.txt
👉 Nur das erste foo pro Zeile wird ersetzt.
🔹 Globales Ersetzen
Mit dem Flag
g ersetzt du
alle Vorkommen pro Zeile:
sed 's/foo/bar/g' datei.txt
Ausgabe (vorher → nachher):
foo foo foo → bar bar bar
🔹 Case-insensitive Ersetzen
Manchmal willst du unabhängig von Groß-/Kleinschreibung ersetzen.
sed 's/foo/bar/Ig' datei.txt
👉
I sorgt für case-insensitive Suche (
Foo,
FOO,
fOo → alles wird
bar).
🔹 Andere Trennzeichen nutzen
Standardmäßig nutzt
sed / als Trennzeichen.
Bei Pfaden oder URLs kann das lästig sein.
Beispiel:
sed 's|/home/user|/srv/data|g' config.txt
👉 Praktisch für Pfade oder HTML-Tags (
s|<br>|<br/>|g).
🔹 Ersetzen mit Referenzen (Backreferences)
sed kann Teile des Musters in
Klammern speichern und im Ersatz wiederverwenden.
Beispiel: Namen tauschen (Vorname Nachname → Nachname, Vorname):
echo "Alice Müller" | sed 's/(.*) (.*)/2, 1/'
Ausgabe:
Müller, Alice
👉
1 = erster Teil in
(...),
2 = zweiter Teil.
🔹 Nur bestimmte Vorkommen ersetzen
Du kannst das n-te Vorkommen in einer Zeile ersetzen.
Beispiel: nur das zweite foo ersetzen:
echo "foo foo foo" | sed 's/foo/bar/2'
Ausgabe:
foo bar foo
👉 Ohne
g ersetzt
sed immer nur ein Vorkommen - hier steuerst du, welches.
🔹 Kombination von Flags
Beispiel: alle
foo (egal ob groß/klein) durch
bar ersetzen:
sed 's/foo/bar/Ig' datei.txt
👉 Flags kannst du frei kombinieren.
🔹 Regex für flexible Ersetzungen
Mit Regulären Ausdrücken kannst du Muster allgemein beschreiben:
👉 Damit deckst du auch unvorhersehbare Texte ab.
🔹 Übung
1. Erstelle demo.txt mit folgendem Inhalt:
Alice lebt in Berlin
Bob lebt in Hamburg
Charlie lebt in Köln
- Ersetze „lebt“ durch "wohnt".
- Ersetze alle Städtenamen durch STADT.
- Schreibe die Namen im Format "Nachname, Vorname" (z. B. "Alice Müller" → "Müller, Alice").
2. Bonus: Ersetze nur das zweite Wort in jeder Zeile durch XXX.
✅ Zusammenfassung
s/MUSTER/ERSATZ/FLAGS ist der Kern von
sed.
Flags:
g = global,
I = case-insensitive, Zahl = n-tes Vorkommen.
Mit anderen Trennzeichen (
|,
#,
:) vermeidest du Konflikte.
Mit
1,
2, … kannst du Teile des Musters wiederverwenden.
Regex macht Ersetzungen flexibel – ideal für Zahlen, Wörter, Muster.
👉
Im nächsten Kapitel lernst du, wie du mit
sed Zeilen gezielt bearbeiten kannst: löschen, einfügen, ersetzen, verschieben.
📚 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