Suchen & Ersetzen im Terminal mit sed
Einen Text in vielen Dateien austauschen, ohne jede von Hand zu öffnen – das erledigt sed in einer Zeile. Ich zeige dir das Grundmuster, wie du es sicher in mehreren Dateien anwendest und warum du vorher immer erst ohne -i testest.
„Ich muss eine alte Domain in 30 Dateien austauschen." Genau dafür ist sed (Stream Editor) da – Suchen & Ersetzen direkt im Terminal, ohne einen einzigen Editor zu öffnen.
Das Grundmuster
sed 's/alt/neu/' datei.txts/alt/neu/ heißt substitute: ersetze alt durch neu. Standardmäßig gibt sed das Ergebnis nur aus – die Datei bleibt unangetastet. Genau deshalb ist es ideal zum gefahrlosen Ausprobieren.
Alle Vorkommen pro Zeile: das g
Ohne Zusatz ersetzt sed nur das erste Vorkommen je Zeile. Für alle hängst du g (global) an:
sed 's/alt/neu/g' datei.txtIn der Datei speichern mit -i
Erst wenn die Ausgabe stimmt, schreibst du die Änderung mit -i („in place") in die Datei:
sed -i 's/example\.com/bymw.de/g' seite.htmlAchtung: Der Punkt ist in sed ein Sonderzeichen (steht für „beliebiges Zeichen"). Willst du einen echten Punkt treffen, schreib \. – sonst ersetzt du auch examplexcom.
In vielen Dateien auf einmal
Kombiniert mit einem Datei-Glob oder find läuft es über einen ganzen Ordner:
sed -i 's/alt/neu/g' *.html # alle HTML im Ordner
find . -name "*.md" -exec sed -i 's/alt/neu/g' {} + # rekursivAnderes Trennzeichen bei Pfaden
Enthält dein Text viele Schrägstriche (z. B. URLs), nimm statt / ein anderes Trennzeichen – das spart lästiges Maskieren:
sed 's#https://alt.de#https://neu.de#g' datei.txtDie goldene Regel
Immer erst ohne -i testen und die Ausgabe prüfen. Erst wenn sie stimmt, -i ergänzen. So kannst du nichts kaputt machen – und ein kurzes git status danach zeigt dir genau, was sich geändert hat.
Wenn du bei einem Projekt Unterstützung bei Automatisierung und sauberem Workflow brauchst, helfe ich dir gern – meld dich über bymw.de.
Quellen
Du brauchst mehr als ein Snippet?
Ich entwickle Android-Apps in Kotlin und moderne Websites für Selbstständige und kleine Unternehmen — von der ersten Idee bis zum Release.
Projekt anfragen →Verwandte Snippets
JSON im Terminal verarbeiten mit jq
APIs antworten mit JSON – und dann? Mit jq filterst, formatierst und transformierst du JSON direkt im Terminal, ganz ohne Wegwerf-Skript. Ich zeige dir die Handvoll jq-Ausdrücke, die ich beim Debuggen von APIs jeden Tag brauche.
SSH bequemer machen – ~/.ssh/config und Port-Tunnel
Statt jedes Mal die lange ssh-Zeile zu tippen, hinterlegst du deine Server einmal in ~/.ssh/config. Und mit einem Port-Tunnel erreichst du eine entfernte Datenbank lokal, als liefe sie auf deinem Rechner. Zwei Dinge, die ich täglich nutze.
REST-APIs im Terminal testen mit curl
Bevor ich eine API in die App einbaue, teste ich sie im Terminal mit curl – GET, POST mit JSON, Header und Auth-Token. Ich zeige dir die Handvoll Flags, mit denen du jeden Endpunkt in Sekunden ausprobierst.