sed

Aus Foxwiki

sed - Stromeditor zum Filtern und Umwandeln von Text

Beschreibung

Sed ist ein Stromeditor (stream editor)
  • Ein Stromeditor wird für grundlegende Texttransformationen auf einen Eingabestrom (einer Datei oder aus einer Verarbeitungskette) verwandt.
  • Obwohl in einigen Aspekten ähnlich zu einem Editor, der Bearbeitungen nach Skript erlaubt (wie Ed), führt Sed nur einen Durchlauf über die Eingabe(n) durch und ist somit effizienter.
  • Allerdings ist es die Fähigkeit von Sed, Text in einer Verarbeitungskette zu filtern, die ihn besonders gegenüber anderen Arten von Editoren auszeichnet.
  • Da es ein "nicht-interaktives" Programm ist, kann es, falls gewünscht, zur Automatisierung der Bearbeitung verwendet werden.
  • Der Name sed ist eine Abkürzung für stream editor, und das Dienstprogramm leitet viele seiner Befehle vom ed line-editor ab (ed war der erste UNIX-Texteditor).
  • So können Sie mehrere Dateien bearbeiten oder gängige Bearbeitungsvorgänge durchführen, ohne jemals vi oder emacs öffnen zu müssen.
  • sed liest aus einer Datei oder von der Standardeingabe und gibt auf der Standardausgabe aus.
  • sed hat zwei Puffer, die Musterpuffer und Haltepuffer genannt werden.
  • Beide sind anfangs leer.
Funktionsweise
  • Geben Sie den Musterpuffer auf stdout aus.
  • Der Stream-Editor ist kein herkömmlicher Editor wie Vi oder Emacs.
  • Sed arbeitet nicht interaktiv, sondern wird über Kommandozeilenoptionen oder ein Skript gesteuert.
  • Sed verändert nicht das Original, sondern schreibt das Ergebnis auf die Standardausgabe.
  • Sed lädt die aktuell betrachtete Zeile in einen temporären Puffer - im Folgenden als Arbeitspuffer bezeichnet.

Unix Sed Arbeitsmethodik

Dies wird als ein Ausführungszyklus bezeichnet
  • Der Zyklus wird fortgesetzt, bis das Ende der Datei/Eingabe erreicht ist # Lesen einer ganzen Zeile aus stdin/file.
  1. Entfernt alle nachstehenden Zeilenumbrüche.
  2. Legt die Zeile in seinen Musterpuffer.
  3. Ändert den Musterpuffer entsprechend den übergebenen Befehlen.

Reguläre Ausdrücke

POSIX.2-BREs sollten unterstützt werden
  • Dies erfolgt allerdings aus Leistungsgründen nicht vollständig.
  • Die Sequenz \n in einem regulären Ausdruck passt auf das Zeilenumbruchzeichen und ähnliches gilt für \a, \t und andere Sequenzen.
  • Die Option -E schaltet auf die Verwendung von erweiterten regulären Ausdrücken um; sie wurde seit Jahren in GNU Sed unterstützt und ist jetzt in POSIX enthalten.

Installation

# apt install sed

Syntax

sed [-V] [--version] [--help] [-n] [--quiet] [--silent]
[-l N] [--line-length=N] [-u] [--unbuffered]
[-E] [-r] [--regexp-extended]
[-e Skript] [--expression=script]
[-f Skriptdatei] [--file=Skriptdatei]
[script-if-no-other-script]
[Datei …]

Optionen

Unix GNU Beschreibung
-n --quiet, --silent unterdrückt die Ausgabe des Musterbereichs
--debug Kommentiert die Programmausführung
-e Skript --expression=Skript Fügt das Skript zu den auszuführenden Befehlen hinzu
-f Skriptdatei --file=Skriptdatei Fügt den Inhalt der Skriptdatei zu den auszuführenden Befehlen hinzu
--follow-symlinks Symbolischen Links bei der Bearbeitung an Ort und Stelle folgen
-i[ENDUNG] --in-place[=ENDUNG] Dateien an Ort und Stelle bearbeiten (erstellt Sicherung, falls ENDUNG angegeben)
-l N --line-length=N Gibt die gewünschte Zeilenumbruchlänge für den Befehl »l« an
--posix Deaktiviert alle GNU-Erweiterungen
-E, -r --regexp-extended Verwendet erweiterte reguläre Ausdrücke in dem Skript (für Portabilität verwenden Sie POSIX -E)
-s --separate Betrachtet Dateien getrennt statt als einzigen, kontinuierlichen langen Strom
--sandbox Arbeitet im »Sandbox«-Modus (deaktiviert e/r/w-Befehle)
-u --unbuffered Lädt minimale Datenmenge aus den Eingabedateien und schreibt die Ausgabepuffer öfter
-z --null-data Zeilen durch NUL-Zeichen trennen
--help zeigt Hilfeinformationen an und beendet das Programm
--version gibt Versionsinformationen aus und beendet das Programm

Befehle

Sed/Befehle

Exit-Status

Anwendungen

  1. Sed/Aufruf
  2. Sed/Dateiübergabe
  3. Sed/Ausgabe
  4. Sed/Kommandos
  5. Sed/Substitutionen
  6. Sed/Regular Expressions
  7. Sed/Beispieltext
  8. Sed/Anweisungen
  9. Sed/Zeilen ausgeben
  10. Sed/Adressierung
  11. Sed/Zeilen löschen
  12. Sed/Suchen und Ersetzen
  13. Sed/Mehrere Kommandos
  14. Sed/Einfügen
  15. Sed/Einfügen aus einer Datei
  16. Sed/Schreiben in eine Datei
  17. Sed/Dateien direkt bearbeiten
  18. Sed/Dateien ergänzen
  19. Sed/Nächste Zeile beabeiten
  20. Sed/Zeichen tauschen
  21. Sed/Sed vorzeitig beenden
  22. Sed/Zeilentausch
  23. Sed/Sed-Skripte

Siehe auch

  1. awk(1)
  2. ed(1)
  3. grep(1)
  4. tr(1)
  5. perlre(1)
  6. sed.info
  7. Sed-FAQ http://sed.sf.net/grabbag/tutorials/sedfaq.txt
  8. http://sed.sf.net/grabbag/

Unterseiten

Dokumentation

  1. https://www.gnu.org/software/sed/manual/sed.html

Man-Pages

Info-Pages

$ info sed

Links

Projekt

Weblinks

Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5