Handbücher für die Kommandozeile

Man » sed Manual online - detaillierte Online-Dokumentation für die sed-Manpage

🌍
sed - Stream-Editor zum Filtern und Transformieren von Text

SYNOPSIS

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

DESCRIPTION

Sed ist ein Stream-Editor. Ein Stream-Editor wird verwendet, um grundlegende Texttransformationen auf einem Eingabestrom (eine Datei oder Eingabe von einer Pipeline) durchzuführen. Obwohl es in einigen Aspekten einem Editor ähnelt, der Skript-basierte Bearbeitungen ermöglicht (wie z. B. ed), arbeitet sed, indem es nur einen Durchgang über die Eingabe(n) durchführt und ist daher effizienter. Aber es ist die Fähigkeit von sed, Text in einer Pipeline zu filtern, die es besonders von anderen Arten von Editoren unterscheidet.

-n, --quiet, --silent
unterdrückt die automatische Ausgabe des Pattern Space.

--debug
Kommentiert die Programmausführung.

-e script, --expression=script
Fügt das Skript zu den auszuführenden Befehlen hinzu.

-f script-file, --file=script-file
Fügt den Inhalt von script-file zu den auszuführenden Befehlen hinzu.

--follow-symlinks
Folgt symbolischen Links beim Bearbeiten vor Ort.

-i[SUFFIX], --in-place[=SUFFIX]
Bearbeitet Dateien vor Ort (erstellt eine Sicherungskopie, wenn SUFFIX angegeben ist).

-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 im Skript (für Portabilität verwenden Sie POSIX -E).

-s, --separate
Behandelt Dateien als getrennt, anstatt als einen einzigen, durchgehenden langen Strom.

--sandbox
Betreibt im Sandbox-Modus (deaktiviert die Befehle e/r/w).

-u, --unbuffered
Lädt minimale Datenmengen aus den Eingabedateien und flusht die Ausgabepuffer häufiger.

-z, --null-data
Trennt Zeilen durch NUL-Zeichen.

--help
Zeigt diese Hilfe an und beendet das Programm.

--version
Gibt Versionsinformationen aus und beendet das Programm.

Wenn keine der Optionen -e, --expression, -f oder --file angegeben ist, wird das erste nicht-optionale Argument als das zu interpretierende sed-Skript übernommen. Alle verbleibenden Argumente sind die Namen der Eingabedateien; wenn keine Eingabedateien angegeben sind, wird die Standardeingabe gelesen.

GNU sed-Homepage: [https://www.gnu.org/software/sed/]. Allgemeine Hilfe bei der Verwendung von GNU-Software: [https://www.gnu.org/gethelp/>. Senden Sie Fehlerberichte an: <_].

Verpackt von Debian, Copyright © 2022 Free Software Foundation, Inc. Lizenz GPLv3+: GNU GPL Version 3 oder später [https://gnu.org/licenses/gpl.html]. Dies ist freie Software: Sie können sie ändern und weiterverbreiten. Es gibt KEINE GARANTIE, in dem Umfang, in dem dies gesetzlich zulässig ist.

BEFEHLSSYNTAX

Dies ist nur eine kurze Synopsis der sed-Befehle, um diejenigen, die sed bereits kennen, daran zu erinnern; andere Dokumentationen (wie das Texinfo-Dokument) müssen für ausführlichere Beschreibungen konsultiert werden.

Null-Adressen-Befehle

: label
Label für die Befehle b und t.

#comment
Der Kommentar erstreckt sich bis zum nächsten Zeilenumbruch (oder bis zum Ende eines -e-Skriptfragments).

}
Die schließende Klammer eines {}-Blocks.

Befehle mit Null- oder einer Adresse

=
Gibt die aktuelle Zeilennummer aus.

a \
text
Fügt Text hinzu, wobei jeder eingebettete Zeilenumbruch durch einen Backslash vorangestellt wird.

i \
text
Fügt Text ein, wobei jeder eingebettete Zeilenumbruch durch einen Backslash vorangestellt wird.

q [exit-code]
Beendet das sed-Skript sofort, ohne weitere Eingaben zu verarbeiten, außer, dass, wenn die automatische Ausgabe nicht deaktiviert ist, der aktuelle Pattern Space ausgegeben wird. Das Argument exit-code ist eine GNU-Erweiterung.

Q [exit-code]
Beendet das sed-Skript sofort, ohne weitere Eingaben zu verarbeiten. Dies ist eine GNU-Erweiterung.

r filename
Fügt Text aus filename hinzu.

R filename
Fügt eine Zeile aus filename hinzu. Bei jedem Aufruf des Befehls wird eine Zeile aus der Datei gelesen. Dies ist eine GNU-Erweiterung.

Befehle, die Adressbereiche akzeptieren

{
Beginn eines Befehlsblocks (Ende mit }).

b label
Verzweigt zu label; wenn label fehlt, wird zum Ende des Skripts verzweigt.

c \
text
Ersetzt die ausgewählten Zeilen durch Text, wobei jeder eingebettete Zeilenumbruch durch einen Backslash vorangestellt wird.

d
Löscht den Pattern Space. Startet den nächsten Zyklus.

D
Wenn der Pattern Space keinen Zeilenumbruch enthält, wird ein normaler neuer Zyklus gestartet, als ob der Befehl d ausgegeben worden wäre. Andernfalls wird der Text im Pattern Space bis zum ersten Zeilenumbruch gelöscht und der Zyklus mit dem resultierenden Pattern Space neu gestartet, ohne eine neue Zeile aus der Eingabe zu lesen.

h H
Kopiert/fügt den Pattern Space in den Hold Space ein.

g G
Kopiert/fügt den Hold Space in den Pattern Space ein.

l
Gibt die aktuelle Zeile in einer "visuell eindeutigen" Form aus.

l width
Gibt die aktuelle Zeile in einer "visuell eindeutigen" Form aus und bricht sie bei width Zeichen ab. Dies ist eine GNU-Erweiterung.

n N
Liest/fügt die nächste Zeile der Eingabe in den Pattern Space ein.

p
Gibt den aktuellen Pattern Space aus.

P
Gibt bis zum ersten eingebetteten Zeilenumbruch des aktuellen Pattern Space aus.

s/regexp/replacement/
Versucht, regexp mit dem Pattern Space abzugleichen. Wenn dies erfolgreich ist, wird der übereinstimmende Teil durch replacement ersetzt. Das replacement kann das Sonderzeichen & enthalten, um sich auf den Teil des Pattern Space zu beziehen, der übereinstimmt, und die Sonderzeichen \1 bis \9, um sich auf die entsprechenden übereinstimmenden Unterausdrücke in dem regexp zu beziehen.

t label
Wenn eine s///-Operation seit dem letzten Lesen der Eingabezeile und seit dem letzten t- oder T-Befehl erfolgreich war, wird zu label verzweigt; wenn label fehlt, wird zum Ende des Skripts verzweigt.

T label
Wenn seit dem letzten Lesen der Eingabezeile und seit dem letzten t- oder T-Befehl keine s///-Operation erfolgreich war, wird zu label verzweigt; wenn label fehlt, wird zum Ende des Skripts verzweigt. Dies ist eine GNU-Erweiterung.

w filename
Schreibt den aktuellen Pattern Space in filename.

W filename
Schreibt die erste Zeile des aktuellen Pattern Space in filename. Dies ist eine GNU-Erweiterung.

x
Tauscht den Inhalt des Hold Space und des Pattern Space aus.

y/source/dest/
Transliteriert die Zeichen im Pattern Space, die in source vorkommen, in das entsprechende Zeichen in dest.

Adressen

^ ed-Befehle können ohne Adressen angegeben werden, in diesem Fall wird der Befehl für alle Eingabezeilen ausgeführt; mit einer Adresse, in diesem Fall wird der Befehl nur für Eingabezeilen ausgeführt, die mit dieser Adresse übereinstimmen; oder mit zwei Adressen, in diesem Fall wird der Befehl für alle Eingabezeilen ausgeführt, die im inklusiven Bereich der Zeilen liegen, beginnend mit der ersten Adresse und endend mit der zweiten Adresse. Drei Dinge sind bei Adressbereichen zu beachten: die Syntax ist ^ ddr1,addr2 (d. h. die Adressen sind durch ein Komma getrennt); die Zeile, auf die addr1 zutrifft, wird immer akzeptiert, auch wenn addr2 eine frühere Zeile auswählt; und wenn addr2 ein regulärer Ausdruck ist, wird er nicht gegen die Zeile getestet, auf die addr1 zutrifft.

Nach der Adresse (oder dem Adressbereich) und vor dem Befehl kann ein ! eingefügt werden, was angibt, dass der Befehl nur ausgeführt werden soll, wenn die Adresse (oder der Adressbereich) nicht übereinstimmt.

Die folgenden Adresstypen werden unterstützt:

`number` Nur die angegebene Zeilennummer wird abgeglichen (die sich über alle Dateien hinweg kumulativ erhöht, es sei denn, die Option `-s` ist in der Befehlszeile angegeben).

`first~step`
Jede `step`-te Zeile, beginnend mit Zeile `first`, wird abgeglichen. Zum Beispiel wird mit dem Befehl `sed -n 1~2p` alle ungeradzahligen Zeilen in dem Eingabestrom ausgegeben, und die Adresse `2~5` wird jede fünfte Zeile abgleichen, beginnend mit der zweiten. `first` kann Null sein; in diesem Fall arbeitet `sed`, als wäre es gleich `step`. (Dies ist eine Erweiterung.)

`$` Die letzte Zeile wird abgeglichen.

`/regexp/`
Zeilen, die mit dem regulären Ausdruck `regexp` übereinstimmen, werden abgeglichen. Der Abgleich wird auf dem aktuellen Pattern Space durchgeführt, der mit Befehlen wie `s///` geändert werden kann.

`\cregexpc`
Zeilen, die mit dem regulären Ausdruck `regexp` übereinstimmen, werden abgeglichen. Das `c` kann ein beliebiges Zeichen sein.

GNU sed unterstützt auch einige spezielle 2-Adress-Formen:

`0addr2`
Beginnt im "abgeglichene erste Adresse"-Zustand, bis `addr2` gefunden wird. Dies ist ähnlich wie `1,addr2`, außer dass, wenn `addr2` mit der allerersten Zeile der Eingabe übereinstimmt, die Form `0,addr2` am Ende ihres Bereichs sein wird, während die Form `1,addr2` immer noch am Anfang ihres Bereichs sein wird. Dies funktioniert nur, wenn `addr2` ein regulärer Ausdruck ist.

`addr1,+N`
`addr1` und die `N` folgenden Zeilen werden abgeglichen.

`addr1,~N`
`addr1` und die folgenden Zeilen werden bis zur nächsten Zeile abgeglichen, deren Eingabezeilennummer ein Vielfaches von `N` ist.

REGULÄRE AUSDRÜCKE

POSIX.2 BREs sollten unterstützt werden, aber dies ist aufgrund von Leistungsproblemen nicht vollständig der Fall. Die Sequenz \n in einem regulären Ausdruck passt zum Zeilenumbruchzeichen, und ebenso für \a, \t und andere Sequenzen. Die Option -E schaltet auf die Verwendung erweiterter regulärer Ausdrücke um; dies wird seit Jahren von GNU sed unterstützt und ist jetzt in POSIX enthalten.

FEHLER

Senden Sie Fehlerberichte per E-Mail an _. Bitte fügen Sie die Ausgabe von sed --version in den Text Ihres Berichts ein, falls dies möglich ist.

AUTOR

Geschrieben von Jay Fenlason, Tom Lord, Ken Pizzini, Paolo Bonzini, Jim Meyering und Assaf Gordon.

Dieses sed-Programm wurde mit SELinux-Unterstützung erstellt. SELinux ist auf diesem System deaktiviert.

GNU `sed`-Homepage: [https://www.gnu.org/software/sed/]. Allgemeine Hilfe bei der Verwendung von GNU-Software: [https://www.gnu.org/gethelp/>. E-Mail-Adresse für Fehlerberichte: <_].

SIEHE AUCH

awk(1), ed(1), grep(1), tr(1), perlre(1), sed.info, eines der verschiedenen Bücher über sed, das sed-FAQ (http://sed.sf.net/grabbag/tutorials/sedfaq.txt), http://sed.sf.net/grabbag/.

Die vollständige Dokumentation für sed wird als Texinfo-Handbuch verwaltet. Wenn die Programme info und sed an Ihrem Standort ordnungsgemäß installiert sind, sollte der Befehl

info sed

Ihnen Zugriff auf das vollständige Handbuch geben.