SED(1) Dienstprogramme fur Benutzer SED(1)
BEZEICHNUNG
Sed - Stromeditor zum Filtern und Umwandeln von Text
UBERSICHT
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 >]
BESCHREIBUNG
Sed ist ein Stromeditor (stream editor). Ein Stromeditor wird fur
grundlegende Texttransformationen auf einen Eingabestrom (einer Datei
oder aus einer Verarbeitungskette) verwandt. Obwohl in einigen Aspekten
ahnlich zu einem Editor, der Bearbeitungen nach Skript erlaubt (wie
Ed), fuhrt Sed nur einen Durchlauf uber die Eingabe(n) durch und ist
somit effizienter. Allerdings ist es die Fahigkeit von Sed, Text in
einer Verarbeitungskette zu filtern, die ihn besonders gegenuber
anderen Arten von Editoren auszeichnet.
-n, --quiet, --silent
unterdruckt die Ausgabe des Musterbereichs.
--debug
Kommentiert die Programmausfuhrung
-e Skript, --expression=Skript
Fugt das Skript zu den auszufuhrenden Befehlen hinzu
-f Skriptdatei, --file=Skriptdatei
Fugt den Inhalt der Skriptdatei zu den auszufuhrenden 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 gewunschte Zeilenumbruchlange fur den Befehl >>l<< an
--posix
Deaktiviert alle GNU-Erweiterungen
-E, -r, --regexp-extended
Verwendet erweiterte regulare Ausdrucke in dem Skript (fur
Portabilitat 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
Ladt minimale Datenmenge aus den Eingabedateien und schreibt die
Ausgabepuffer ofter
-z, --null-data
Zeilen durch Nullbyte-Zeichen trennen
--help zeigt Hilfeinformationen an und beendet das Programm.
--version
gibt Versionsinformationen aus und beendet das Programm.
Falls weder die Option -e, --expression, -f noch --file angegeben
wurden, wird das erste nicht Optionsargument als zu interpretierendes
Sed-Skript verwendet. Alle verbleibenden Argumente sind Namen von
Eingabedateien. Falls keine Eingabedateien angegeben wurden, wird die
Standardeingabe gelesen.
GNU-Sed-Homepage: . Allgemeine Hilfe
beim Einsatz von GNU-Software: .
Fehlerberichte (auf Englisch) per E-Mail an: .
BEFEHLSUBERSICHT
Dies ist nur eine knappe Ubersicht uber die Befehle von Sed, als
Erinnerung fur alle, die Sed bereits kennen. Fur ausfuhrlichere
Beschreibungen mussen andere Dokumentationen (wie das Texinfo-Dokument)
herangezogen werden.
>>Befehle<< ohne Adressen
: Marke
Marke fur b- und t-Befehle
#Kommentar
Der Kommentar lauft bis zum nachsten Zeilenumbruch (oder dem
Ende eines -e-Skriptfragments)
} Die schliessende Klammer eines { }-Blocks
Befehle ohne oder mit einer Adresse
= Gibt die aktuelle Zeilennumer aus
a \
Text Text anhangen, der eingebettete Zeilenumbruche mit
vorangestelltem Ruckschragstrich (>>backslash<<) enthalt
i \
Text Text einfugen, der eingebettete Zeilenumbruche mit
vorangestelltem Ruckschragstrich (>>backslash<<) enthalt
q [Ruckgabewert]
Das Sed-Skript sofort ohne Verarbeitung weiterer Eingabe
beenden. Allerdings wird der aktuelle Musterbereich ausgegeben,
falls >>auto-print<< nicht deaktiviert ist. Das Argument
Ruckgabewert ist eine GNU-Erweiterung.
Q [Ruckgabewert]
Das Sed-Skript sofort ohne Verarbeitung weiterer Eingabe
beenden. Dies ist eine GNU-Erweiterung.
r Dateiname
Aus Dateiname eingelesenen Text anhangen
R Dateiname
Eine Zeile aus Dateiname einlesen und anhangen. Jeder Aufruf des
Befehls liest eine Zeile der Datei. Dies ist eine
GNU-Erweiterung.
Befehle, die Adressbereiche akzeptieren
{ Beginnt einen Befehlsblock (Ende mit einem })
b Marke
Verzweigt zu Marke. Falls Marke fehlt, verzweigt zum Ende des
Skripts
c \
Text Ersetzt die ausgewahlte Zeile mit Text, der eingebettete
Zeilenumbruche mit vorangestelltem Ruckschragstrich
(>>backslash<<) enthalt
d Loscht den Musterbereich. Beginnt den nachsten Zyklus.
D Falls der Musterbereich keinen Zeilenumbruch enthalt, wird ein
neuer Zyklus begonnen, als ob der Befehl >>d<< angegeben worden
ware. Andernfalls wird der Text im Musterbereich bis zu dem
ersten Zeilenumbruch geloscht und der Zyklus mit dem
entstandenen Musterbereich neu gestartet, ohne eine neue
Eingabezeile zu lesen.
h H Kopiert/Hangt den Musterbereich in den Haltebreich (hold space)
(an)
g G Kopiert/Hangt den Haltebereich in den Musterbereich (an)
l Fuhrt die aktuelle Zeile in einer >>visuell eindeutigen<< Art
auf
l Breite
Fuhrt die aktuelle Zeile in einer >>visuell eindeutigen<< Art
auf und bricht dabei nach Breite Zeichen um. Dies ist eine
GNU-Erweiterung.
n N Liest/Hangt die nachste Zeile der Eingabe in den Musterbereich
(an)
p Gibt den aktuellen Musterbereich aus.
P Gibt bis zum ersten eingebetteten Zeilenumbruch im aktuellen
Musterbereich aus.
s/RegAusdr/Ersatz/
Sucht die Entsprechung von RegAusdr im Musterbereich und falls
erfolgreich, ersetzt den passenden Teil mit Ersatz. Ersatz kann
das besondere Zeichen & enthalten, um auf den Teil des
Musterbereichs zu verweisen, der passte, und die besonderen
Maskiersequenzen \1 bis \9, die auf die entsprechenden passenden
Teilausdrucke in RegAusdr verweisen.
t Marke
Falls s/// eine erfolgreiche Ersetzung durchgefuhrt hat, seit
die letzte Eingabezeile gelesen wurde und seit dem letzten t-
oder T-Befehl, dann wird zu Marke verzweigt. Falls Marke fehlt,
wird zum Ende des Skripts verzweigt.
T Marke
Falls kein s/// eine erfolgreiche Ersetzung durchgefuhrt hat,
seit die letzte Eingabezeile gelesen wurde und seit dem letzten
t- oder T-Befehl, dann wird zu Marke verzweigt. Falls Marke
fehlt, wird zum Ende des Skripts verzweigt.
w Dateiname
Schreibt den aktuellen Musterbereich nach Dateiname
W Dateiname
Schreibt die erste Zeile des aktuellen Musterbereichs in
Dateiname. Dies ist eine GNU-Erweiterung.
x Tauscht den Inhalt des Halte- und Musterbereichs
y/Quelle/Ziel/
Ubersetzt die Zeichen im Musterbereich, die in Quelle
auftauchen, in die entsprechenden Zeichen in Ziel
Adressen
Befehle von Sed konnen ohne Adresse angegeben werden. In diesem Fall
werden sie fur alle Eingabezeilen ausgefuhrt. Wird eine Adresse
angegeben, werden sie nur fur Zeilen ausgefuhrt, die auf diese Adresse
passen. Werden zwei Adressen (das Maximum) angegeben, dann wird der
Befehl fur alle Eingabezeilen ausgefuhrt, die auf den einschliessenden
Bereich passen, der bei der ersten Adresse beginnt und bis zur zweiten
Adresse lauft. Es gibt drei Dinge, die Sie bei Adressbereichen beachten
sollten: Die Syntax lautet Adr1,Adr2 (d.h. die Adressen werden durch
ein Komma getrennt), die Zeile, auf die Adr1 passt, wird immer
akzeptiert, selbst falls Adr2 eine davor liegende Zeile auswahlen
sollte und falls Adr2 ein regularer Ausdruck ist, wird er nicht gegen
die Zeile, auf die Adr1 passte, gepruft.
Nach der Adresse (oder dem Adressbereich) und vor dem Befehl kann ein !
eingefugt werden, das angibt, dass der Befehl nur ausgefuhrt werden
darf, falls die Adresse (oder der Adressbereich) nicht passt.
Die folgenden Adresstypen werden unterstutzt:
Nummer Passt nur auf die angegebene Zeile Nummer (die uber Dateien
hinweg kummulativ ansteigt, ausser die Option -s ist auf der
Befehlszeile angegeben worden).
Erster~Abstand
Passt auf jede Abstands Zeile, beginnend mit Erster.
Beispielsweise wird >>sed -n 1~2p<< alle ungeraden Zeilen in dem
Eingabestrom ausgeben und die Adresse 2~5 wird auf jede funfte
Zeile, beginnend mit der zweiten, passen. Erster kann Null sein,
in diesem Fall verhalt sich Sed als ob er identisch mit Abstand
ware (dies ist eine Erweiterung).
$ Passt auf die letzte Zeile
/RegAusdr/
Passt auf Zeilen, die auf den regularen Ausdruck RegAusdr
passen. Der Abgleich erfolgt auf dem aktuellen Musterraum, der
mit Befehlen wie >>s///<< verandert werden kann.
\cRegAusdrc
Passt nur auf Zeilen, die auf den regularen Ausdruck RegAusdr
passen. Das c kann jedes Zeichen sein.
GNU-Sed unterstutzt auch einige besondere 2-Adressformen:
0,Adr2 Beginnt in dem Zustand >>passe auf erste Adresse<< bis Adr2
gefunden wird. Dies ist ahnlich zu 1,Adr2, abgesehen davon, dass
wenn Adr2 auf die allererste Zeile der Eingabe passt, der
Ausdruck 0,Adr2 sich am Ende seines Bereichs befinden wird,
wahrend der Ausdruck 1,Adr2 sich noch am Anfang seines Bereichs
befinden wird. Dies funktioniert nur, falls Adr2 ein regularer
Ausdruck ist.
Adr1,+N
Passt auf Adr1 und die N auf Adr1 folgenden Zeilen
Adr1,~N
Passt auf Adr1 und die Adr1 folgenden Zeilen bis zu der nachsten
Zeile, deren Eingabezeilennummer ein Vielfaches von N ist
REGULARE AUSDRUCKE
POSIX.2-BREs sollten unterstutzt werden. Dies erfolgt allerdings aus
Leistungsgrunden nicht vollstandig. Die Sequenz \n in einem regularen
Ausdruck passt auf das Zeilenumbruchzeichen und ahnliches gilt fur \a,
\t und andere Sequenzen. Die Option -E schaltet auf die Verwendung von
erweiterten regularen Ausdrucken um; sie wurde seit Jahren in GNU Sed
unterstutzt und ist jetzt in POSIX enthalten.
FEHLER
Schicken Sie Fehlerberichte (auf Englisch) an bug-sed@gnu.org. Geben
Sie auch bitte die Ausgabe von >>sed --version<< im E-Mail-Text an,
falls irgendwie moglich.
AUTOR
Geschrieben von Jay Fenlason, Tom Lord, Ken Pizzini, Paolo Bonzini, Jim
Meyering und Assaf Gordon.
Dieses Sed-Programm wurde ohne Unterstutzung fur SELinux erstellt.
GNU-Sed-Homepage: . Allgemeine Hilfe
beim Einsatz von GNU-Software: .
Fehlerberichte (auf Englisch) per E-Mail an: .
COPYRIGHT
Copyright (C) 2022 Free Software Foundation, Inc. Lizenz GPLv3+: GNU
GPL Version 3 oder neuer.
Dies ist freie Software: Sie konnen sie verandern und weitergeben. Es
gibt KEINE GARANTIE, soweit gesetzlich zulassig.
SIEHE AUCH
awk(1), ed(1), grep(1), tr(1), perlre(1), sed.info, eines der
verschiedenen Bucher uber Sed, die Sed-FAQ
(http://sed.sf.net/grabbag/tutorials/sedfaq.txt),
http://sed.sf.net/grabbag/.
Die vollstandige Dokumentation fur sed wird als Texinfo-Handbuch
gepflegt. Wenn die Programme info(1) und sed auf Ihrem Rechner
ordnungsgemass installiert sind, konnen Sie mit dem Befehl
info sed
auf das vollstandige Handbuch zugreifen.
UBERSETZUNG
Die deutsche Ubersetzung dieser Handbuchseite wurde von Helge
Kreutzmann und Mario Blattermann
erstellt.
Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General
Public License Version 3
oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG
ubernommen.
Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden,
schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer
.
GNU sed 4.9 Marz 2023 SED(1)