sed [OPTIONEN] [KOMMANDO] [DATEILISTE] sed [OPTIONEN] [-f SCRIPTFILE] [DATEILISTE]
Es werden grundsätzlich zwei Möglichkeiten genutzt um sed aufzurufen. Im ersten Fall wird das KOMMANDO auf der Befehlszeile eingegeben und auf die angegebenen Dateien angewendet. Im zweiten Fall stehen die Anweisungen in einer externen Skriptdatei. Diese wird abgearbeitet und die darin enthaltenen Kommandos auf den Inhalt der Dateien angewendetet. Sollte keine Datei angegeben sein, so liest sed von der Standardeingabe. Dabei wird jede gelesene Zeile mit den sed-Kommandos bearbeitet und in einen Puffer geschrieben. Dessen Inhalt wird dann zum Schluß auf der Standardausgabe ausgegeben.
Optionen | |
-V | Versionsnummer |
-h | Hife |
-e SCRIPT | Zusätzliche Skriptanweisung zur Bearbeitung |
-f SCRIPTFILE | Datei, die die Skriptbefehle enthält |
-n | Ausgabe erfolgt nur bei Benutzung des `p' Kommandos |
Jeder Befehl kann durch einen Bereich, für den er gültig ist, eingeschränkt werden. Die Bereichsangabe erfolgt im Format
VON
oder
VON, BIS.
Dabei können die Werte für VON und BIS
sed s/SUCHEN/ERSETZEN/ sed s/SUCHEN/ERSETZEN/g sed s/SUCHEN/ERSETZEN/p sed -n s/SUCHEN/ERSETZEN/gp sed s3/SUCHEN/ERSETZEN/Die Zeichenkette zwischen dem ersten und dem zweiten Schrägstrich gibt das Suchmuster an, während die Zeichenkette zwischen dem zweiten und dem dritten Schrägstrich den Ersetzungstext enthält.
Um das Suchmuster effektiver zu gestalten, können reguläre Ausdrücke7.1 verwendet werden. Diese bestehen normalerweise aus zwei Komponenten: Die Angabe, nach welchem Zeichen gesucht wird, und die Angabe, wie oft das Zeichen auftreten darf.
Die hinten angestellten Optionen verändern die Arbeitsweise von sed. Dabei bewirkt g, daß alle Zeichenketten in der Zeile durch die neue Zeichenkette ersetzt werden (Sonst nur die erste Zeichenkette). Das p führt dazu, daß die Zeilen ausgegeben werden, in denen eine Ersetzung erfolgte. Sind beide Optionen gesetzt, so wird bei einer mehrfachen Ersetzung in einer Zeile die Zeile auch mehrfach angezeigt. Verhindert wird dies durch den Schalter -n. Das s3
sorgt dafür, daß das dritte Vorkommen von SUCHEN
in der Zeile ersetzt wird.
/SUCHEN/p
/SUCHEN/d
/SUCHEN/r DATEINAME
/SUCHEN/w DATEINAME
sed 's/UNIX/Linux/g' einleitung.tex
Ersetzt jedes Wort ``paragraph'' durch das Wort ``subsubsection'' in der Datei linux.tex und schreibt das Ergebnis in die Datei linuxneu.tex.
sed 's/paragraph/subsubsection/g' linux.tex > linuxneu.tex
Einen interessanten Effekt hat das Zeichen '&' in der Ersetzungszeichenkette. Die gesuchte Zeichenkette wird nicht ersetzt, sondern die Ersetzungszeichenkette wird hinten angefügt.
sed 's/</</g' index.html
Damit die schließende spitze Klammer ersetzt wird, muß das kaufmännische Und auskommentiert werden.
sed 's/</\</g' index.html
Ersetzt alle Zeichenfolgen ``man'' durch ``frau'' in den Zeilen 1 bis 3 in der Datei einleitung.tex. Dabei werden nur die Zeilen ausgegeben, in denen die Änderung erfolgte.
sed -n '1,3s/man/frau/p' einleitung.tex
Gibt alle Zeilen aus, die entweder ``man'' oder ``frau'' enthalten.
sed -n -e '/man/p' -e '/frau/p' einleitung.tex
Das folgende Kommando löscht alle Zeilen, die die Zahl `0' enthalten.
sed '/0/d' einleitung.tex
Alle Zeilen, die die Zeichenkette ``include'' enthalten, werden durch den Inhalt der Datei include.txt ersetzt.
sed '/include/r include.txt' einleitung.txt
Alle Zeilen, die die Zeichenkette ``section'' enthalten, werden in die Datei inhalt.txt geschrieben.
sed '/section/w inhalt.txt' einleitung.tex