WikiDer > Sed (Software)

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