Inhaltsverzeichnis
2.2 Inhalt ersetzen --- Befehl c
2.3 Inhalt löschen --- Löscht die angegebene Zeile
2.4 Inhalt einfügen --- Befehl i
2.5 Inhalt ersetzen --- Befehl s
Der Befehl Linux sed verwendet Skripte, um Textdateien Zeile für Zeile zu verarbeiten. Dieser Befehl wird häufig in der Skriptverarbeitung verwendet. Zusammen mit awk und grep wird er als Drei Musketiere von Linux bezeichnet. Im Folgenden werden Beispiele beschrieben.
1. Grammatik
sed [Optionen] [Skriptbefehl] [Datei] ...
1.1 Allgemeine Optionen
-e script, --expression = script: Verarbeitet den Eingabeinhalt mit dem in der Option angegebenen Skript.
-f Skriptdatei, --file = Skriptdatei: Verarbeitet den Eingabeinhalt mit der in der Option angegebenen Skriptdatei.
1.2 Allgemeine Befehle
a : Neuer Inhalt, fügen Sie Inhaltstext in die angegebene Zeile ein;
c : Ersetzen Sie den Inhalt, verwenden Sie Text, um den Inhalt der angegebenen Zeile zu ersetzen.
d : Inhalt löschen, angegebene Zeile löschen;
i : Inhalt einfügen, Text in die angegebene Zeile einfügen;
s : Ersetzen Sie den Inhalt. Sie können den angegebenen Inhalt ersetzen.
Beispiel: Die ersten 15 Zeilen der Datei / etc / passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
1.3 Befehlsprinzip
Sed verarbeitet die Eingabedaten zeilenweise und verarbeitet jeweils eine Zeile, die in drei Schritte unterteilt werden kann:
1. Speichern Sie eine Kopie der aktuell verarbeiteten Zeile in einem temporären Puffer ("Modusbereich" genannt).
2. Verarbeiten Sie die Daten im aktuellen Puffer mit dem Befehl sed.
3. Nachdem die Daten verarbeitet wurden, werden die Daten standardmäßig an das Terminal ausgegeben. Anschließend wird die nächste Zeile verarbeitet und alle Daten wurden verarbeitet.
Die Quelldaten werden standardmäßig nicht geändert.
2. Beispiele
2.1 Neuer Inhalt --- Befehl a
sed '4a zusätzlich etwas Text' passwd
[root@localhost ~]# sed '4a addition some text' passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
addition some text
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#
Im obigen Beispiel bedeutet 4a das Einfügen von Inhalten nach der vierten Zeile, der folgende Text ist der Eingabeinhalt und passwd ist die Eingabedatei.
2.2 Inhalt ersetzen --- Befehl c
sed '2c zusätzlich etwas Text' passwd
[root@localhost ~]# sed '2c addition some text' passwd
root:x:0:0:root:/root:/bin/bash
addition some text
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#
Im obigen Beispiel bedeutet 2c, den Inhalt der zweiten Zeile zu ersetzen, und der folgende Inhalt ist der zu ersetzende Inhalt.
2.3 Inhalt löschen --- Löscht die angegebene Zeile
sed '2d' passwd
[root@localhost ~]# sed '2d' passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#
sed '2,5d' passwd
[root@localhost ~]# sed '2,5d' passwd
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#
sed '/ ^ bin / d' passwd
[root@localhost ~]# sed '/^bin/d' passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#
In den obigen drei Beispielen können Sie löschen, indem Sie eine Zeile oder ein Intervall angeben oder indem Sie einen bestimmten Inhalt zum Löschen angeben.
2.4 Inhalt einfügen --- Befehl i
sed '1i zusätzlich etwas Text' passwd
[root@localhost ~]# sed '1i addition some text' passwd
addition some text
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#
Der eingefügte Inhalt unterscheidet sich vom neu hinzugefügten Inhalt. Das Einfügen wird vor der angegebenen Zeile und der neu hinzugefügte Inhalt nach der angegebenen Zeile eingefügt.
2.5 Inhalt ersetzen --- Befehl s
sed 's / root / ROOT / g' passwd
[root@localhost ~]# sed 's/root/ROOT/g' passwd
ROOT:x:0:0:ROOT:/ROOT:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/ROOT:/sbin/nologin
[root@localhost ~]#
In den obigen Beispielen kann der angegebene Inhalt ebenso wie das Ersetzen in vim durch Befehle ersetzt werden.
Drei, Zusammenfassung
Das Obige ist nur eine Liste der gebräuchlichen Verwendungen von sed in Form von Beispielen, es gibt immer ausführlichere Inhalte, und ich werde sie vorstellen, wenn ich Zeit habe.