Sed: Unterschied zwischen den Versionen
Zeile 15: | Zeile 15: | ||
* Beide sind anfangs leer. | * Beide sind anfangs leer. | ||
; Funktionsweise | |||
* Geben Sie den Musterpuffer auf stdout aus. | * Geben Sie den Musterpuffer auf stdout aus. | ||
* Der Stream-Editor ist kein herkömmlicher Editor wie Vi oder Emacs. | * Der Stream-Editor ist kein herkömmlicher Editor wie Vi oder Emacs. |
Version vom 31. März 2023, 13:57 Uhr
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.
- Entfernt alle nachstehenden Zeilenumbrüche.
- Legt die Zeile in seinen Musterpuffer.
- Ä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
Exit-Status
Anwendungen
- Sed/Aufruf
- Sed/Dateiübergabe
- Sed/Ausgabe
- Sed/Kommandos
- Sed/Substitutionen
- Sed/Regular Expressions
- Sed/Beispieltext
- Sed/Anweisungen
- Sed/Zeilen ausgeben
- Sed/Adressierung
- Sed/Zeilen löschen
- Sed/Suchen und Ersetzen
- Sed/Mehrere Kommandos
- Sed/Einfügen
- Sed/Einfügen aus einer Datei
- Sed/Schreiben in eine Datei
- Sed/Dateien direkt bearbeiten
- Sed/Dateien ergänzen
- Sed/Nächste Zeile beabeiten
- Sed/Zeichen tauschen
- Sed/Sed vorzeitig beenden
- Sed/Zeilentausch
- Sed/Sed-Skripte
Siehe auch
- awk(1)
- ed(1)
- grep(1)
- tr(1)
- perlre(1)
- sed.info
- Sed-FAQ http://sed.sf.net/grabbag/tutorials/sedfaq.txt
- http://sed.sf.net/grabbag/
Unterseiten
- Sed
- Sed/Adressierung
- Sed/Anweisungen
- Sed/Aufruf
- Sed/Ausgabe
- Sed/Befehle
- Sed/Beispieltext
- Sed/Dateien direkt bearbeiten
- Sed/Dateien ergänzen
- Sed/Dateiübergabe
- Sed/Einfügen
- Sed/Einfügen aus einer Datei
- Sed/Kommandos
- Sed/Mehrere Kommandos
- Sed/Nächste Zeile beabeiten
- Sed/Regular Expressions
- Sed/Schreiben in eine Datei
- Sed/Sed-Skripte
- Sed/Sed vorzeitig beenden
- Sed/Substitutionen
- Sed/Suchen und Ersetzen
- Sed/Zeichen tauschen
- Sed/Zeilen ausgeben
- Sed/Zeilen löschen
- Sed/Zeilentausch
Dokumentation
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