Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

sed - Editor im Prozedurbetrieb

&pagelevel(4)&pagelevel

(stream editor)


sed ist ein nicht interaktiver, zeilenorientierter Editor mit ähnlichem Funktionsumfang wie der auch zeilenorientierte, aber interaktive ed.

sed eignet sich besonders, um

  • mehrere globale Editierfunktionen effizient in einem Schritt durchzuführen,

  • die Ausgabe eines Kommandos über eine Pipeline auf einfache Weise zu editieren,

  • eine Folge von Editierkommandos anzuwenden, die für die interaktive Eingabe zu kompliziert ist.

sed liest Dateien sequentiell, bearbeitet die eingelesenen Zeilen entsprechend den sed-Kommandos, die Sie in ein sed-Skript geschrieben haben, und gibt die bearbeiteten Zeilen auf die Standard-Ausgabe aus. sed liest das sed-Skript entweder von der Kommandoaufrufzeile oder aus einer Datei. Die Eingabedateien bleiben unverändert. Wenn Sie die Änderungen sichern möchten, lenken Sie die Standard-Ausgabe in eine Datei um.


Syntax


Format 1: sed[ -n] skript[ datei...]
Format 2: sed[ -n][ -e skript]...[ -f skriptdatei]...[ datei...]



Format 1: sed[ -n] skript[ datei...]


-n

unterdrückt die standardmäßig erfolgende Ausgabe jeder bearbeiteten Eingabezeile auf die Standard-Ausgabe (siehe Beispiel 6).

-n nicht angegeben:
sed gibt jede bearbeitete Eingabezeile auf die Standard-Ausgabe aus. Ob die Zeile bei der Bearbeitung verändert wurde oder nicht, hängt von den Kommandos im sed-Skript ab. Die Zeilen werden also auch ausgegeben, wenn im sed-Skript kein Ausgabekommando, wie z.B. p steht. Eingabezeilen, die mit einem Ausgabekommando, wie z.B. p bearbeitet werden, werden zweimal nacheinander ausgegeben. Die erste Ausgabe erfolgt als standardmäßige Ausgabe aller bearbeiteten Zeilen. Die zweite Ausgabe erfolgt wegen der speziellen Bearbeitung, die in diesem Fall die Ausgabe bewirkt.

skript

sed liest das sed-Skript skript, mit dem die Eingabedatei bearbeitet werden soll, von der Kommandoaufrufzeile. Wenn skript Leerzeichen, Neue-Zeile-Zeichen oder Shell-Sonderzeichen enthält, müssen Sie das Kommando in Hochkommas einschließen: ’skript

datei

Name der Datei, deren Inhalt sed bearbeiten soll. Sie können nur Text-Dateien mit sed bearbeiten.

datei nicht angegeben:
sed liest von der Standard-Eingabe.



Format 2: sed[ -n][ -e skript]...[ -f skriptdatei]...[ datei...]


-n

unterdrückt die standardmäßig erfolgende Ausgabe jeder bearbeiteten Eingabezeile auf die Standard-Ausgabe (siehe Beispiel 6).

-n nicht angegeben:
sed gibt jede bearbeitete Eingabezeile auf die Standard-Ausgabe aus. Ob die Zeile bei der Bearbeitung verändert wurde oder nicht, hängt von den Kommandos im sed-Skript ab. Die Zeilen werden also auch ausgegeben, wenn im sed-Skript kein Ausgabekommando, wie z.B. p steht. Eingabezeilen, die mit einem Ausgabekommando, wie z.B. p bearbeitet werden, werden zweimal nacheinander ausgegeben. Die erste Ausgabe erfolgt als standardmäßige Ausgabe aller bearbeiteten Zeilen. Die zweite Ausgabe erfolgt wegen der speziellen Bearbeitung, die in diesem Fall die Ausgabe bewirkt.

-e skript

sed liest das sed-Skript skript, mit dem die Eingabedatei bearbeitet werden soll, von der Kommandoaufrufzeile. Wenn skript Leerzeichen, Neue-Zeile-Zeichen oder Shell-Sonderzeichen enthält, müssen Sie das Kommando in Hochkommas einschließen: ’skript

Sie können -e skript mehrmals und auch zusammen mit -f skriptdatei angeben. sed liest dann die sed-Kommandos aus allen angegebenen sed-Skripts.

Enthält die Kommandoaufrufzeile nur einmal die Option -e und nicht die Option -f, können Sie skript auch ohne -e angeben.

-f skriptdatei

sed liest das sed-Skript, mit dem die Eingabedatei bearbeitet werden soll, aus der Datei
skriptdatei.

Sie können -f skriptdatei mehrmals und auch zusammen mit -e skript angeben. sed liest
dann die sed-Kommandos aus allen angegebenen sed-Skripts.

datei

Name der Datei, deren Inhalt sed bearbeiten soll. Sie können nur Text-Dateien mit sed bearbeiten.

datei nicht angegeben:
sed liest von der Standard-Eingabe.

Arbeitsweise

sed arbeitet jeweils mit Kopien der Eingabezeilen. Sie werden nacheinander in den sogenannten Musterspeicher kopiert.

Normalerweise bearbeitet sed die Eingabezeilen in folgendem Zyklus: 

1. Schritt:

Die nächste (am Dateianfang die erste) Eingabezeile wird in den Musterspeicher kopiert.

2. Schritt:

Alle sed-Kommandos im sed-Skript, welche die zuletzt in den Musterspeicher kopierte Zeile adressieren, werden nacheinander auf den Inhalt des Musterspeichers angewandt. Abhängig von den sed-Kommandos wird dabei der Inhalt des Musterspeichers verändert oder auch nicht.

3. Schritt:

Der bearbeitete Inhalt des Musterspeichers wird auf die Standard-Ausgabe ausgegeben, und der Musterspeicher wird gelöscht.

Dieser Zyklus wird solange durchlaufen, bis die Eingabe erschöpft ist.

Der Musterspeicher kann manchmal auch mehrere Zeilen enthalten (siehe sed-Kommandos g, G, N). Als Adresse des Musterspeichers gilt jedoch immer die Adresse der zuletzt in den Musterspeicher kopierten Zeile.

Einige sed-Kommandos (g, G, h, H) benutzen zusätzlich einen sogenannten Haltespeicher, in dem der Inhalt des Musterspeichers vollständig oder teilweise zur späteren Wiederverwendung gespeichert wird.

Format eines sed-Skripts

Ein sed-Skript besteht aus Kommandozeilen der Form:

[bereich]sed-Kommando[parameter]...

oder

[bereich]{sed-Kommando[parameter]...
          sed-Kommando[parameter]...
          ...
          }


Die geschweiften Klammern müssen Sie nur angeben, wenn Sie bereich angeben.
Die schließende geschweifte Klammer } muss an einem Zeilenanfang stehen, d.h. es dürfen ihr nur Leerzeichen oder Tabulatorzeichen vorangehen.

Zwischen bereich und sed-Kommando darf kein Leerzeichen stehen.

Mit bereich wählen Sie bestimmte Eingabezeilen aus. Wenn bereich den Musterspeicher, d.h. die zuletzt in den Musterspeicher kopierte Eingabezeile adressiert, wird das zugehörige sed-Kommando bzw. die sed-Kommandoliste auf den Inhalt des Musterspeichers angewandt.

Sie können für bereich eine Adresse oder zwei durch ein Komma getrennte Adressen angeben.

bereich = adresse

Jede zuletzt in den Musterspeicher kopierte Eingabezeile, die zu adresse passt, ist adressiert.

bereich = adresse1,adresse2

Der Bereich von der durch adresse1 adressierten Eingabezeile bis zu der durch adresse2 adressierten Eingabezeile, einschließlich der Intervallgrenzen, ist adressiert. Adressiert adresse2 eine Zeile, die in der Eingabedatei vor der mit adresse1 adressierten Zeile liegt, gilt nur adresse1.

bereich nicht angegeben:
Jede zuletzt in den Musterspeicher kopierte Eingabezeile ist adressiert.

Adressen

$

letzte Zeile der Datei

n

n-te Eingabezeile, wobei n eine positive ganze Zahl ist. Die Nummern ergeben sich, indem alle Eingabezeilen fortlaufend durchnummeriert werden.

/muster/

Eingabezeile, die eine zu muster passende Zeichenkette enthält. Wenn muster selbst einen Schrägstrich enthält, muss er mit einem Gegenschrägstrich \ davor entwertet werden. muster ist ein einfacher regulärer Ausdruck (siehe Tabellen und Verzeichnisse, Reguläre Ausdrücke) mit folgenden Änderungen:

Die Angabe \?regulärer ausdruck?, wobei ? ein beliebiges Zeichen ist, gleichbedeutend mit /regulärer ausdruck/. Dabei steht ein mit einem Gegenschrägstrich \ entwertetes ? für sich selbst, begrenzt also nicht den regulären Ausdruck. Zum Beispiel steht die Adresse \xabc\xdefx für die Zeichenkette: abcxdef

Die Escape-Sequenz \n passt zum Neue-Zeile-Zeichen im Musterspeicher.

Ein Punkt passt zu jedem Zeichen außer dem letzten Neue-Zeile-Zeichen im Musterspeicher.

sed-Kommandos

Im Folgenden sind die sed-Kommandos in alphabetischer Reihenfolge beschrieben.
Die eckigen Klammern [ ] sind dabei nicht einzugeben! Sie zeigen lediglich an, dass die dazwischen eingeschlossene Adressangabe fakultativ ist.

Das Argument text besteht aus einer oder mehreren Zeilen, von denen alle bis auf die letzte mit einem Gegenschrägstrich \ enden müssen, um das anschließende Neue-Zeile-Zeichen zu entwerten.

[adresse]a\
text

(a - append)

Im Anschluss an die Ausgabe des Inhalts des Musterspeichers wird text ausgegeben.

[bereich]b[marke]

(b - branch)

Im sed-Skript wird zu dem sed-Kommando :marke verzweigt.

marke nicht angegeben:
Es wird ans Ende des sed-Skripts verzweigt.

[bereich]c\
text

(c - change)

Der adressierte Bereich wird gelöscht, wenn er im Musterspeicher ist, text wird ausgegeben und der nächste Zyklus wird gestartet.

[bereich]d

(d - delete)

Der Inhalt des Musterspeichers wird gelöscht und der nächste Zyklus wird gestartet. Der 3. Schritt, die Ausgabe des Inhalts des Musterspeichers, entfällt.

[bereich]D

(d - delete)

Der Inhalt des Musterspeichers wird vom Anfang bis zum ersten Neue-Zeile-Zeichen gelöscht und der nächste Zyklus wird gestartet.

[bereich]g

Der Inhalt des Haltespeichers ersetzt den Inhalt des Musterspeichers.

[bereich]G

Der Inhalt des Haltespeichers wird an den Musterspeicher angefügt.

[bereich]h

Der Inhalt des Musterspeichers ersetzt den Inhalt des Haltespeichers.

[bereich]H

Der Inhalt des Musterspeichers wird an den Haltespeicher angefügt.

[adresse]i\
text

(i - insert)

text wird vor dem Inhalt des Musterspeichers ausgegeben.

[bereich]l

(l - list)

Der Inhalt des Musterspeichers wird auf die Standard-Ausgabe ausgegeben, wobei nicht-druckbare Zeichen durch Ersatz-Zeichen (z.B. Tabulatorzeichen durch das Größerzeichen>) oder als Oktalzahlen (siehe Tabellen und Verzeichnisse, Zeichensatz ISO 646) in der Form \nn dargestellt werden. Überlange Zeilen mit mehr als 71 Zeichen werden auf zwei oder mehr Zeilen unterteilt. Ein Gegenschrägstrich \ am Ende einer Zeile zeigt an, dass die Textzeile in der nächsten Bildschirmzeile fortgesetzt wird.

[bereich]n

(n - next)

Der Inhalt des Musterspeichers wird auf die Standard-Ausgabe ausgegeben und durch die nächste Eingabezeile ersetzt. Die Adresse der eigegebenen Zeile wird zur Adresse des Musterspeichers.

[bereich]N

Die nächste Eingabezeile wird einschließlich des Neue-Zeile-Zeichens an den Inhalt des Musterspeichers angefügt. Die Adresse der letzten angefügten Zeile wird zur Adresse des Musterspeichers.

[bereich]p

(p - print)

Der Inhalt des Musterspeichers wird auf die Standard-Ausgabe ausgegeben. Nicht druckbare Zeichen werden nicht dargestellt.

[bereich]P

(p - print)

Der Anfang des Musterspeichers wird bis zum ersten Neue-Zeile-Zeichen einschließlich auf die Standard-Ausgabe ausgegeben. Nicht druckbare Zeichen werden nicht dargestellt.

[adresse]q

(q - quit)

sed wird beendet. Haben Sie mehrere sed-Skripts angegeben, wird sed beim ersten q beendet, das in irgendeinem der Skripts steht.

[bereich]r rdatei

(r - read)

Der Inhalt der Datei rdatei wird gelesen und vor dem Kopieren der nächsten Eingabezeile in den Musterspeicher auf die Standard-Ausgabe ausgegeben. rdatei muss, durch genau ein Leerzeichen vom sed-Kommando r getrennt, am Ende der Kommandozeile stehen.

[bereich]s/rA/ersetzungszeichenkette/[parameter]

(s - substitute)

Zeichenketten im Musterspeicher, zu denen der reguläre Ausdruck rA passt, werden durch ersetzungszeichenkette ersetzt. Für rA können Sie einfache reguläre Ausdrücke angeben (siehe Tabellen und Verzeichnisse, Reguläre Ausdrücke). Als Trennzeichen können Sie außer dem Schrägstrich / jedes beliebige Zeichen verwenden. Nähere Informationen siehe ed-Kommando s.

parameter

n

(n - number)

Nur die n-te zu rA passende Zeichenkette in einer Zeile wird durch ersetzungszeichenkette ersetzt. n ist eine ganze Zahl von 1 bis 512.

g

(g - global)

Alle zu rA passenden Zeichenketten in einer Zeile werden durch ersetzungszeichenkette ersetzt.

p

(p - print)

Der Inhalt des Musterspeichers wird auf die Standard-Ausgabe ausgegeben, falls eine Ersetzung durchgeführt wurde, auch wenn sed mit Option -n aufgerufen wurde.

w wdatei

(w - write)

Der Inhalt des Musterspeichers wird in die Datei wdatei geschrieben, falls eine Ersetzung durchgeführt wurde. Der Inhalt einer bereits vor dem sed-Aufruf existierenden Datei mit dem Namen wdatei wird überschrieben.

Wenn innerhalb eines sed-Skripts mehrere w-Kommandos in dieselbe Datei wdatei schreiben, wird der Inhalt des Musterspeichers jeweils an den Inhalt von wdatei angehängt. wdatei muss, durch genau ein Leerzeichen vom sed-Kommando w getrennt, am Ende der Kommandozeile stehen. In einem sed-Aufruf dürfen Sie maximal 10 verschiedene Dateien für wdatei verwenden.


Achtung!
Wenn Sie für wdatei den Namen Ihrer Eingabedatei angeben, zerstören Sie diese!


parameter nicht angegeben:
Nur die erste zu rA passende Zeichenkette einer Zeile wird durch ersetzungszeichenkette ersetzt.

[bereich]t marke

(t -test)

Im sed-Skript wird zu dem sed-Kommando :marke verzweigt, falls seit dem letzten Kopieren einer Eingabezeile in den Musterspeicher oder dem letzten Aufrufen eines t-Kommandos eine Ersetzung durchgeführt wurde.

marke nicht angegeben:
Im sed-Skript wird ans Ende gesprungen.

[bereich]w wdatei

(w - write) Der Inhalt des Musterspeichers wird in die Datei wdatei geschrieben. Der Inhalt einer bereits vor dem sed-Aufruf existierenden Datei mit dem Namen wdatei wird überschrieben. Wenn innerhalb eines sed-Skripts mehrere w-Kommandos in dieselbe Datei wdatei schreiben, wird der Inhalt des Musterspeichers jeweils an den Inhalt von wdatei angehängt. wdatei muss, durch genau ein Leerzeichen vom sed-Kommando w getrennt, am Ende der Kommandozeile stehen. In einem sed-Aufruf dürfen Sie maximal 10 verschiedene Dateien für wdatei verwenden.


Achtung!
Wenn Sie für wdatei den Namen Ihrer Eingabedatei angeben, zerstören Sie diese!


[bereich]x

(x - exchange)

Der Inhalt des Muster- und Haltespeichers wird ausgetauscht.

[bereich]y/zeichenkette1/zeichenkette2/

Jedes Vorkommen eines Zeichens aus zeichenkette1 wird durch das entsprechende Zeichen aus zeichenkette2 ersetzt. zeichenkette1 und zeichenkette2 müssen gleich lang sein und explizit angegeben werden. Reguläre Ausdrücke können nicht verwendet werden.

[bereich]!kommando
[bereich]!{kommandoliste}

kommando ist ein sed-Kommando oder eine in geschweiften Klammern {...} eingeschlossene sed-Kommandoliste und wird auf alle Zeilen angewandt, die nicht durch bereich adressiert sind.

:marke

Dieses Kommando setzt im Skript die marke, die von den Kommandos b und t angesprungen werden kann. Für marke können Sie bis zu 8 Zeichen angeben.

[adresse]=

Die aktuelle Zeilennummer wird auf die Standard-Ausgabe in einer eigenen Zeile ausgegeben.

[bereich]{sed-Kommando
          sed-Kommando
          ...
         }

Die in geschweiften Klammern {...} eingeschlossenen sed-Kommandos werden nacheinander ausgeführt, wenn bereich den aktuellen Musterspeicher adressiert. Der öffnenden Klammer { können Leerzeichen vorausgehen, gefolgt von weiteren Leerzeichen und Tabulatoren.
Den Kommandos können Leerzeichen und Tabulatoren vorausgehen. Die schließende Klammer } muss auf ein Neue-Zeile-Zeichen folgen. Es dürfen ihr nur Leerzeichen vorausgehen.

<enter>

Das Neue-Zeile-Zeichen gilt als leeres Kommando und wird ignoriert. Sie können so Ihre sed-Skripts durch Leerzeilen übersichtlich gliedern.

#

Steht in der ersten Zeile einer Skriptdatei als erstes Zeichen ein #, wird der darauffolgende Zeileninhalt als Kommentar interpretiert.

#n

Steht in der ersten Zeile einer Skriptdatei als erstes Zeichen ein #n, wird die standardmäßige Ausgabe des Musterspeichers unterdrückt (entspricht der Option -n). Der auf #n folgende Zeileninhalt wird als Kommentar gewertet und nicht als sed-Kommando interpretiert.

Fehler

sed: command garbled: ...

Das sed-Skript enthält einen Syntaxfehler. Nach dem Doppelpunkt wird die Stelle aus dem Skript ausgegeben, an der sich sed beendet hat. 


Cant't open datei
Sie haben eine Eingabedatei angegeben, die nicht existiert oder für die Sie kein Leserecht besitzen.


Unrecognized command: ...

Das sed-Skript enthält ein unbekanntes Kommando.

Internationale Umgebung

Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos sed:

LANG

Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden.

LC_ALL

Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen.

LC_COLLATE

Legt die internationale Umgebung für die Bedeutung von Zeichenbereichen, Äquivalenzklassen und Zeicheneinheiten in geklammerten regulären Ausdrücken fest.

LC_CTYPE

Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten). LC_CTYPE bestimmt zusätzlich, welche Zeichen bei Verwendung des Kommandos l als nichtdruckbar betrachtet werden.

LC_MESSAGES

Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden.

NLSPATH

Legt den Pfad der Meldungsdateien für LC_MESSAGES fest.

Beispiel 1

In alle Leerzeilen einer Datei die Zeichenkette XXXXX schreiben und die Ausgabe in eine andere Datei umlenken:

$ sed '/^$/s/^/XXXXX/' datei > dateineu

Mit /^$/ sind alle Leerzeilen adressiert, d.h. Zeilen, in denen zwischen Zeilenanfang und Zeilenende nichts, auch kein Leerzeichen, steht. sed sucht nach dem Zeilenanfang ^ und ersetzt ihn durch die Zeichenkette XXXXX.

Beispiel 2

Alle Zeilen einer Datei, die mit einer Ziffer beginnen, um 4 Leerzeichen einrücken und die Ausgabe in eine andere Datei umlenken:

$ sed '/^[0-9]/s/^/      /' datei > dateineu

Mit /^[0-9]/ sind alle Zeilen adressiert, in denen am Zeilenanfang eine Ziffer von 0 bis 9 einschließlich steht. sed sucht nach dem Zeilenanfang ^ und ersetzt ihn durch 4 Leerzeichen '    ', d.h. verschiebt den bisherigen Zeileninhalt um 4 Positionen nach rechts und füllt Position 1 bis 4 mit Leerzeichen.

Beispiel 3

Alle Zeilen einer Datei ausgeben, die keine Leerzeilen sind:

$ sed '/^$/d' datei

Alle Leerzeilen werden mit /^$/ adressiert und mit d gelöscht.

Beispiel 4

Alle Zeilen einer Datei mit jeweils einer Leerzeile dazwischen ausgeben:

$ sed 's/$/\ <enter>
> /' datei


Da keine Adresse angegeben ist, sucht sed in jeder Zeile nach dem Zeilenende $ und ersetzt es durch ein Neue-Zeile-Zeichen, d.h. es wird ein zusätzliches Neue-Zeile-Zeichen eingefügt.

Beispiel 5

Ausgeben der zweiten und dritten Spalte einer Datei, deren Spalten jeweils durch einen
Doppelpunkt voneinander getrennt sind. Die dritte Spalte soll vor der zweiten ausgegeben
werden:

$ sed 's/[^:]*:\([^:]*\):\([^:]*\):.*/\2:\1/' datei


Erläuterung:

s/ / /

In jeder Zeile wird die Zeichenkette zwischen dem ersten und zweiten Schrägstrich
gesucht und ersetzt durch die Zeichenkette zwischen dem zweiten und dritten Schrägstrich.

[^:]*

Beliebig viele (*) Zeichen außer Doppelpunkt ([^:])

:

Doppelpunkt

\(   \)

Klammerung eines Teilausdrucks, der in der Ersetzungszeichenkette zwischen dem zweiten und dritten Schrägstrich wiederverwendet werden soll

\2

Die Ersetzungszeichenkette soll mit dem in der zweiten Klammer \(...\) stehenden Teilausdruck beginnen.

:

Zwischen dem ersten und zweiten Teilausdruck in der Ersetzungszeichenkette soll ein Doppelpunkt stehen.

\1

Die Ersetzungszeichenkette soll mit dem in der ersten Klammer \(...\) stehenden Teilausdruck enden.

Beispiel 6

Aus der Datei pers alle Berufe herausfiltern und mit einer neuen Überschrift in die Datei berufe schreiben. Voraussetzung für das folgende Beispiel ist, dass die erste Zeile der Eingabedatei keinen Suchbegriff, in diesem Fall „Beruf:“ enthält.

Die Datei pers hat folgenden Aufbau:

Name: Hans Mueller
Familienstand: geschieden
Beruf: Journalist
Name: Karin Becker
Familienstand: verheiratet
Beruf: Programmiererin
usw.

sed-Programm:

$ sed -n '1{s/^.*/Berufe:/
            h
          }
          /^Beruf:/{s/^Beruf: *\(.*\)/\1/
            H
          }
          ${g
            p
          }' pers > berufe
$ cat berufe
Berufe:
Journalist
Programmiererin
usw.
$


Erläuterung:
Zeile 1 im Musterspeicher wird ersetzt durch die Zeichenkette Berufe: und dann mit h in den Haltespeicher geschrieben.

Jede Zeile im Musterspeicher, die mit Beruf: beginnt, wird ersetzt durch die Zeichenkette, die jeweils darauf folgt und mit H an den Haltespeicher angefügt.

Die letzte Zeile der Datei im Musterspeicher ($) wird mit g ersetzt durch den gesamten Inhalt des Haltespeichers. Mit p wird der Inhalt des Musterspeichers ausgegeben.

Die Option -n sorgt dafür, dass die in den Musterspeicher kopierten Eingabezeilen nach ihrer Bearbeitung nicht automatisch auf die Standard-Ausgabe geschrieben werden. Nur der mit dem sed-Kommando p bearbeitete Inhalt des Musterspeichers wird ausgegeben.

Siehe auch

awk, ed, grep

Tabellen und Verzeichnisse, Reguläre Ausdrücke