Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenMontag, 28. Mai 2012 

Sed


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
sed ist ein Computerprogramm . Es wurde bekannt als Unix -Werkzeug mit dem Textdateien geändert werden können. sed ist ein nicht-interaktiver Editor der die Bearbeitung von Textdateien von Kommandozeile aus ermöglicht. "sed" steht für "Stream

Die sed-Befehle orientieren sich teilweise an des zeilenorientierten Texteditors ed.

Sed liest eine Eingabedatei Zeile für und gibt jede Zeile entsprechend vorgegebener Regeln wieder aus.

Eine typische Anwendung ist das Ersetzen Ausdrücken:

 sed -e 's/alt/neu/g' Eingabedatei > Ausgabedatei 

In diesem Beispiel ist durch das angedeutet dass der nachfolgende Text die Veränderungsregel Die Veränderungsregel 's/alt/neu/g' besagt dass in jeder der Eingabedatei die Zeichenfolge 'alt' durch die 'neu' zu ersetzen ist. Das führende 's' dass eine Zeichen-Ersetzung (substitution) stattfinden soll. Das am Ende gibt vor dass die Veränderung d.h. für alle Vorkommen in der Zeile werden soll.

Auch das Ersetzen von mehrfachen Leerzeichen ein einziges ist möglich:

 sed -e 's/ +/ /g' Eingabedatei Ausgabedatei  
Der Trick daran ist daß die Zeichenfolge nicht immer 1:1 übernommen werden sondern eine Regular Expression darstellt. In diesem Falle steht das für ein- oder mehrmals das vorherige Zeichen womit nicht nur ein Leerzeichen sondern mehrere hintereinander ersetzt werden.

In der alten oder der neuen bereits ein '/' vorkommen behilft man sich des '/' im obigen Beispiel mit einem Sonderzeichen:

 sed -e 's!/tmp/!!  
ersetzt alle Vorkommen von '/tmp/' durch nichts daher die zwei '!' direkt nebeneinander.

Man kann sed auch (anstatt grep) benutzen um alle Zeilen einer Datei auszudrucken einem bestimmten Muster entsprechen:

 sed -n -e '/einMuster/p' eingabeDateiName  
Die Option '-n' gibt dabei an sed nichts ausgeben soll wenn es nicht den 'p'-Befehl explizit gefordert wird. Ohne diese sed automatisch jede Zeile der Eingabedatei in Ausgabedatei.

Löschen aller Zeilen die leer sind:

 sed -e '/^ *$/d' Eingabedatei >  
Der Befehl d bedeutet dass die betreffende Zeile gelöscht soll.

Diese Beispiele zeigen einen typischen Einsatzbereich sed: Einfache Aufgaben die durch kurze Regeln sind. Diese Regeln erlauben weiterhin den Einsatz Regulärer Ausdrücke die (u.a.) durch sed bekannt geworden

Weiter kann man die Regeln durch einfache Skriptsprache auch zu größeren Programmen zusammenfassen. Programmiersprache kennt zwar keine Variabeln und hat einfache Vergleichsmöglichkeiten und einen GOTO Befehl; sie ist aber trotzdem turing-äquivalent .

Für komplexere Aufgaben werden gewöhnlich awk Perl oft in Kombination mit anderen Programmierwerkzeugen

Das GNU-Projekt macht eine Version von sed als Freie Software auf jedem Betriebssystem verfügbar das über C-Compiler verfügt.

Weblinks


SED ist die Abkürzung für Sozialistische Einheitspartei Deutschlands .




Bücher zum Thema Sed

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/Sed.html">Sed </a>