Der Befehl sed oder stream editor ist ein Programm, mit dem Sie Textdateien gemäß verschiedener Parameter ändern können. Der Befehl sed kann auch für globale Such- und Ersetzungsaktionen verwendet werden. Einige der allgemeinen Befehlsoptionen und ihre Verwendung finden Sie in der folgenden Tabelle.
Option | Beschreibung |
---|---|
-d | Löschen Sie die Zeilen, die einem bestimmten Muster oder einer bestimmten Zeilennummer entsprechen. |
-n,p | Drucken Sie nur die Zeilen, die das Muster enthalten. |
s | Ersetzen Sie das erste Vorkommen der Zeichenfolge in der Datei. |
S,g | Ersetzen Sie global die ursprüngliche Zeichenfolge durch die Ersetzungszeichenfolge für jedes Vorkommen in der Datei. |
Syntax
Die allgemeine Syntax des sed-Befehls lautet:
# sed {'option/address/ action'} {file names}
Adressen weisen sed an, nur auf bestimmten Zeilen oder nur auf Text zu reagieren, der einem bestimmten regulären Ausdrucksmuster entspricht. Sie sind optional. Auf Adressen folgt die Aktion, die ausgeführt werden soll, wenn eine Übereinstimmung gefunden wird. Das letzte Argument ist der Name der Eingabedatei. Die Options-, Adress- und Aktionsparameter werden normalerweise in einfache Anführungszeichen gesetzt.
Wenn beim Ausführen des Befehls sed der folgende Fehler auftritt:
sed: command not found
Sie können versuchen, das folgende Paket gemäß Ihrer Wahl der Distribution zu installieren:
Betriebssystemverteilung | Befehl |
---|---|
Debian | apt-get install sed |
Ubuntu | apt-get install sed |
Alpin | apk sed hinzufügen |
Arch Linux | pacman -S sed |
Kali-Linux | apt-get install sed |
CentOS | yum installiere sed |
Fedora | dnf installieren sed |
Raspbian | apt-get install sed |
sed-Befehlsbeispiele
1. Ersetzen Sie das erste Vorkommen eines regulären Ausdrucks in jeder Zeile einer Datei und geben Sie das Ergebnis aus:
# sed 's/regular_expression/replace/' filename
2. Ersetzen Sie alle Vorkommen eines erweiterten regulären Ausdrucks in einer Datei und geben Sie das Ergebnis aus:
# sed -r 's/regular_expression/replace/g' filename
3. Ersetzen Sie alle Vorkommen einer Zeichenfolge in einer Datei und überschreiben Sie die Datei (d. h. an Ort und Stelle):
# sed -i 's/find/replace/g' filename
4. Ersetzen Sie nur in Linien, die dem Linienmuster entsprechen:
# sed '/line_pattern/s/find/replace/' filename
5. Zeilen löschen, die dem Linienmuster entsprechen:
# sed '/line_pattern/d' filename
6. Drucken Sie die ersten 11 Zeilen einer Datei:
# sed 11q filename
7. Wenden Sie mehrere Suchen-Ersetzen-Ausdrücke auf eine Datei an:
# sed -e 's/find/replace/' -e 's/find/replace/' filename
8. Ersetzen Sie das Trennzeichen `/` durch ein beliebiges anderes Zeichen, das nicht in den Such- oder Ersetzungsmustern verwendet wird, z. `#`:
# sed 's#find#replace#' filename