WikiDer > Sed (Software)
sed ist ein Akronym von soStrom EDitor. Es ist ein Computerprogramm, das zu den Standardanwendungen unter . gehört Unix und GNU/Linux (und Varianten). Auch für andere Betriebssysteme gibt es Ports dieses Programms.
Sed ist nicht als interaktiver Editor gedacht - obwohl es mit einigem Aufwand als solcher verwendet werden könnte -, sondern wird meistens auf Unix-Weise verwendet in RohrStrukturen.
Im Fall von sed bedeutet dies: Ausgabe von einem anderen Befehl oder einer Datei lesen, sie nach einigen Regeln bearbeiten (das sed-Skript) und die Ausgabe an ein anderes Programm oder an eine Datei senden.sed verwendet einen einfachen und mächtigen Befehlssatz und hat einen einfachen Zweig und Variablen-Struktur. Trotzdem ist die Sprache Turing-komplett.
Sed verwendet sehr umfassend und leistungsstark Reguläre Ausdrücke.
Wichtige Merkmale von sed:
- zeilenorientiert: alle Befehle werden in einer Zeile freigegeben, bevor die nächste Zeile gelesen und verarbeitet wird;
- Die laufende Zeile wird in einem sogenannten Musterraum in denen eine Verarbeitung stattfindet;
- ein sogenannter Platz halten kann verwendet werden, um vorherige Zeilen zu speichern;
- durch spezielle Befehle kann Musterraum und Platz halten werden ausgetauscht;
- sed weiß Bescheid zum Etikett Befehl;
- dort kann Etiketten definiert werden, verwendet werden in gehe zu und bedingt Befehle;
- die einzigen Variablen, die sed kennt, sind die Positionsfelder innerhalb von a regulären Ausdruck;
Befehle
- [''addr''][''command''] mehrzeilige Befehle
- [''line-addr''][''command''] einzeilige Befehle
Adresse ist eine Zeilennummer oder a regulären Ausdruck
Befehl könnte sein:
- # - Kommentar (nur an Position 1 der Zeile)
- so - Auswechslung
- d - ganze Zeile löschen (löschen)
- ein - füge die folgende(n) Zeile(n) nach der aktuellen an
- ich - folgende Zeile(n) einfügen (insert) vor der aktuellen
- c - ersetzen (ändern)
- ja - transformieren
- p - aktuelle Zeile anzeigen (Drucken)
- nein - gehe zur nächsten Zeile (nächste)
- r - eine andere Datei lesen (lesen)
- w - in eine Datei schreiben (schreiben)
Sed-Beispiele
- sed -n '3.4p' /etc/passwd
- (Zeigt nur die 3. und 4. Zeile der passwd-Datei an)
- echo wokopedoa | sed s/o/i/
- Ändert das erste Vorkommen von Ö in einem ich, Ausgabe: wikopedoa
- echo wokopedoa | sed s/o/i/g
- Ändert alle Vorkommen von Ö im ich, Ausgabe: Wikipedia
- echo aaa-bbb | sed 's (.*)-(.*) 2-1 '
- Text auf beiden Seiten des Minuszeichens tauschen