Inhaltsverzeichnis

sed

Stream EDitor, ein Unix-Werkzeug zur Bearbeitung von Texten

String ersetzen

Mit dem Befehl s lassen sich Ersetzungen vornehmen.

sed 's/old pattern/new pattern/'

Um mehrere Treffer in einer Zeile zu ersetzen, wird das Flag g am Ende benötigt:

sed 's/old pattern/new pattern/g'

Als Trennzeichen muss nicht / verwendet werden. Das Zeichen nach s wird automatisch das Trennzeichen. Jedes beliebige Zeichen kann dafür verwendet werden.

Zeile mit bestimmtem String entfernen

Mit dem Befehl d wird die ganze Zeile gelöscht, die „pattern to match“ enthält.

sed '/pattern to match/d' ./infile 

Inplace-Operation

POSIX-sed benötigt eine separate Ausgabedatei.

sed '/pattern to match/d' ./infile > ./outfile

GNU sed kann dagegen mit der Option -i bzw. --in-place auch direkt die Eingangsdatei bearbeiten:

sed -i '/pattern to match/d' ./infile
sed --in-place '/pattern to match/d' ./infile

Escaping

Einfache Anführungszeichen (single quotes) müssen mit \ escaped werden und zusätzlich von zwei einfachen Einführungszeichen eingeschlossen werden. Das folgende Beispiel ersetzt einfache Anführungszeichen durch Leerzeichen:

sed 's/'\''/ /g' input