ubuntuusers.de

sed

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/terminal.png sed (von stream editor) ist ein nicht-interaktiver Texteditor für die Verwendung auf der Kommandozeile oder in Skripten. sed zählt zu den "Urgesteinen" in der Unix- / Linux-Welt und ist quasi in jeder Linux-Installation (auch Minimalinstallationen) enthalten.

Verwandte Befehle sind:

Installation

Das Programm sed ist im essentiellen Paket

  • sed

von Ubuntu enthalten und ist deshalb auf jedem System installiert.

Aufruf von sed

sed [Optionen] sed-Skript [Textdatei...] 

oder

sed [Optionen] [-e sed-Skript | -f Skriptdatei] [Textdatei...] 

Das Ergebnis wird auf der Standardausgabe ausgegeben. Wird keine Datei angegeben, so wird die Standardeingabe verwendet. Die Syntax von sed-Skripten findet man in der info-Seite von sed oder über die Links am Ende des Artikels. sed-Skripte verwenden reguläre Ausdrücke ähnlich denen von grep. Es ist empfehlenswert, sed-Skripte durch Hochkommas (') zu schützen, damit die Shell Sonderzeichen nicht selbst auswertet.

Parameter

Diese Parameterliste ist unvollständig. Weiteres findet sich auf der man- oder info-Seite von sed.

Optionen von sed
Kurzform Langform Beschreibung
-n --quiet, --silent Verhindert das automatische Ausgeben des Ergebnisses. Ausgaben erfolgen nur über das Kommando p.
-e Skript --expression=Skript Angeben eines sed-Skriptes, mehrere sed-Skripte sind möglich. Bei nur einem sed-Skript kann -e weggelassen werden.
-f Skriptdatei --file=Skriptdatei Das sed-Skript steht in der Skriptdatei, nicht auf der Kommandozeile.
-i --in-place Die Textdatei wird verändert, anstatt das Ergebnis auf Standardausgabe auszugeben.

Anwendungsbeispiele

Ersetzen von Text in einer Datei:

sed s/Anton/Berta/g Textdatei 

Jedes Auftreten von "Anton" wird durch "Berta" ersetzt (aber auch "Antonius" wird zu "Bertaius"). Wird g (global) weggelassen, wird nur das erste Auftreten in einer Zeile ersetzt.

sed /Name/s/\bAnton\b/Berta/g Textdatei 

Alle Wörter "Anton" werden durch "Berta" ersetzt (nicht "Antonius"), aber nur in Zeilen, die "Name" enthalten.

sed -n s/Anton/Berta/gp Textdatei 

Ersetzt alle "Anton" durch "Berta" und gibt nur die betroffenen Zeilen aus.

Entfernen von Zeilen:

sed '/^#/d' Textdatei 

Zeilen die mit # anfangen, werden entfernt.

Zeilen einfügen:

sed '3iNeue Zeile' Textdatei 

Vor der dritten Zeile wird "Neue Zeile" eingefügt.

sed '4aNeue Zeile' Textdatei 

Hier wird "Neue Zeile" nach der vierten Zeile eingefügt.

sed '$aNeue Zeile' Textdatei 

Hier wird "Neue Zeile" nach der letzten Zeile eingefügt.

Reguläre Ausdrücke:

sed 's/^E-Mail:.*$/E-Mail-Adresse ist privat/' Textdatei 

Alle Zeilen, die mit "E-Mail:" anfangen, werden ersetzt.

Bearbeiten von Dateinamen:

sed 's!/home/anton/!/home/berta/!' Textdatei 

Normalerweise wird "/" als Trennzeichen verwendet. Es lässt sich aber beliebig austauschen, was beim Bearbeiten von Dateinamen nützlich ist.

Bearbeiten von PHP Einstellungen (memory_limit) z.B. php.ini

sed -i "s/memory_limit = .*M/memory_limit = 2048M/" /etc/php/7.2/apache2/php.ini 

Hier wird der memory_limit von dem Standard-Wert auf memory_limit = 2048M gesetzt.

Bearbeiten von PHP Einstellungen (upload_max_filesize) z.B. php.ini

sed -i "s/upload_max_filesize =.*/upload_max_filesize = 10240M/" /etc/php/7.2/apache2/php.ini 

Hier wird der memory_limit von dem Standard-Wert auf upload_max_filesize = 10240M gesetzt.

Diese Revision wurde am 14. November 2019 08:16 von EricBerne erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Shell