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)