sed steht für
Stream EDitor und ist ein bekanntes Unix-Werkzeug, mit dem Texte geändert werden können.
sed ermöglicht die automatisierte Manipulation per Kommandozeile.
Installation
sed ist eigentlich bei jeder ordentlichen Linux-Distribution schon vorinstalliert, wenn man allerdings aus welchen Gründen auch immer, sed gelöscht hat, kann man dieses in Ubuntu mit
sudo apt-get install sed
wieder neuinstallieren. Auf der
sed-Homepage kann man den Quellcode und Binärpakete für verschiedene Betriebssysteme, wie OS/2, Win3.x-Win2k, MS-DOS, HPUX und natürlich Linux herunterladen.
Bedienung
Standardfunktion von sed ist das Ersetzen von Argumenten in Dokumenten. Da sed ausschließlich über das Terminal bedient wird, erfolgt die Bedienung auch ausschließlich über Befehle. Um ein Wort in einem Dokument zu ersetzen, gibt es den Befehl
sed 's/alt/neu/g' Eingabedatei >Ausgabedatei
s steht in diesem Fall für "substitution", also "ersetzen" und das
g steht für "global", also dass
jedes Argument ersetzt werden soll.
Mit
sed kann man Wörter oder Argumente auch komplett aus einem Text entfernen, indem man für "neu" einfach nichts einsetzt. Für den Fall, dass mal ein / im Ausdruck vorkommt, kann man mit
sed auch ein anderes Trennzeichen definieren. Soll bspw. der Ausdruck
Damen/ Herren durch
Männer und Frauen ersetzt werden, sollte man ein alternatives Sonderzeichen als Trennzeichen definieren:
sed 's!Damen/ Herren!Männer und Frauen!g'
.
Außerdem gibt es die Funktion
d , der eine bestimmte Zeile löscht. Der Befehl
sed d Eingabedatei >Ausgabedatei
würde zu einem leeren Dokument führen, weswegen man noch definieren sollte,
welche Zeile gelöscht werden soll. Dies geschieht nach dem Schema
sed '/ausdruck/d' ' Eingabedatei >Ausgabedatei
, wobei das Wort
ausdruck in einer Zeile vorkommen muss, damit die Zeile komplett gelöscht wird.
Man kann auch
sed als Ersatz für das Programm
grep nehmen, dass Zeilen aus einem Dokument ausgibt, die einen bestimmten Ausdruck enthalten. Der Code dafür ist folgendermaßen:
sed -n '/einMuster/p' Eingabedatei
Anwendungsbeispiele
Man kann mit
sed viele lustige Spielereien machen, wie zum Beispiel ein Programm, um einen anonymen Serienbrief zu
personalisieren ;)^^
Eine wirklich sinnvolle Einsatzweise ist ein Text-to-HTML-Konverter, er ersetzt die Sonderzeichen ä,ö,ü usw. automatisch in die HTML-Codes dafür. Außerdem kann man mit
sed auch das Einfügen von Bildern in HTML-Dokumente vereinfachen, da man sozusagen eigene Befehle, die einfacher sind als die Standard-HTML-Tags, erstellen kann. Unsere Blogeinträge über Gobby werden mit einem eigenen Syntax geschrieben und dann von einem selbstgeschriebenen
Programm mit
sed in ein HTML-Dokument umgewandelt.
Ein weiteres sinnvolles Einsatzgebiet von
sed ist das Löschen von überflüssigen Leerzeichen.
sed 's/ \+/ /g' Eingabedatei >Ausgabedatei
ersetzt diese durch ein einziges. Zur Erklärung: das \+ bedeutet: Der Ausdruck davor soll mindestens einmal vorkommen.
Beteiligte Autoren:
benni,
joeserin