Programmvorstellung: sed
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
Schreibe einen Kommentar