GNU/Linux >> LINUX-Kenntnisse >  >> Linux

20 Sed (Stream Editor)-Befehlsbeispiele für Linux-Benutzer

Sed-Befehl oder Stream-Editor ist ein sehr leistungsfähiges Dienstprogramm, das von Linux/Unix-Systemen angeboten wird. Es wird hauptsächlich zur Textersetzung verwendet , Suchen &Ersetzen, aber es kann auch andere Textmanipulationen wie Einfügen durchführen , Löschung , Suche usw. Mit SED können wir komplette Dateien bearbeiten, ohne sie tatsächlich öffnen zu müssen. Sed unterstützt auch die Verwendung regulärer Ausdrücke, was Sed zu einem noch leistungsfähigeren Testmanipulationstool macht .

In diesem Artikel werden wir anhand einiger Beispiele lernen, den SED-Befehl zu verwenden. Die grundlegende Syntax für die Verwendung des Befehls sed lautet:

sed OPTIONEN… [SKRIPT] [INPUTFILE…]

Sehen wir uns nun einige Beispiele an.

Beispiel :1) Teiltext einer Datei anzeigen

Mit sed können wir nur einen Teil einer Datei anzeigen, anstatt die gesamte Datei zu sehen. Um einige Zeilen der Datei anzuzeigen, verwenden Sie den folgenden Befehl,

[[email protected] ~]$ sed -n 22,29p testfile.txt

Hier unterdrückt die Option 'n' das Drucken der gesamten Datei und die Option 'p' druckt nur die Zeilen von 22 bis 29.

Beispiel :2) Alle außer einigen Zeilen anzeigen

Um den gesamten Inhalt einer Datei mit Ausnahme einiger Teile anzuzeigen, verwenden Sie den folgenden Befehl,

[[email protected] ~]$ sed 22,29d testfile.txt

Option 'd' entfernt die erwähnten Zeilen aus der Ausgabe.

Beispiel :3) Zeige jede 3. Zeile beginnend mit der N-ten Zeile an

Zeigen Sie den Inhalt jeder 3. Zeile beginnend mit Zeilennummer 2 oder einer anderen Zeile an, verwenden Sie den folgenden Befehl

[[email protected] ~]$ sed -n '2~3p' file.txt

Beispiel :4 ) Löschen einer Zeile mit dem Befehl sed

Um eine Zeile mit sed aus einer Datei zu löschen, verwenden Sie den folgenden Befehl,

[[email protected] ~]$ sed Nd testfile.txt

wobei 'N' die Zeilennummer ist und die Option 'd' die erwähnte Zeilennummer löscht. Um die letzte Zeile der Datei zu löschen, verwenden Sie

[[email protected] ~]$ sed $d testfile.txt

Beispiel :5) Zeilenbereich löschen

Um eine Reihe von Zeilen aus der Datei zu löschen, führen Sie

aus
[[email protected] ~]$ sed '29,34d' testfile.txt

Dadurch werden die Zeilen 29 bis 34 aus der Datei testfile.txt gelöscht.

Beispiel :6) Löschen von anderen als den erwähnten Zeilen

Um andere als die erwähnten Zeilen aus einer Datei zu löschen, verwenden wir ‘!’

[[email protected] ~]$ sed '29,34!d' testfile.txt

Hier wird die Option „!“ als nicht verwendet, sodass die Bedingung umgekehrt wird, d. H. Die erwähnten Zeilen werden nicht gelöscht. Alle anderen Zeilen 29-34 werden aus den Dateien testfile.txt gelöscht.

Beispiel :7) Hinzufügen von Leerzeilen/Leerzeichen

Um nach jeder nicht leeren Zeile eine Leerzeile einzufügen, verwenden wir die Option „G“,

[[email protected] ~]$ sed G testfile.txt

Beispiel :8) Suchen und Ersetzen einer Zeichenkette mit sed

Um eine Zeichenfolge aus der Datei zu suchen und zu ersetzen, verwenden wir das folgende Beispiel,

[[email protected] ~]$ sed 's/danger/safety/' testfile.txt

hier sucht Option 's' nach dem Wort 'danger' und ersetzt es in jeder Zeile nur beim ersten Vorkommen durch 'safety'.

Beispiel :9) Suche und ersetze einen String in der ganzen Datei mit sed

Um das Wort vollständig aus der Datei zu ersetzen, verwenden wir die Option „g“  durch „s“,

[[email protected] ~]$ sed 's/danger/safety/g' testfile.txt

Beispiel :10) Ersetze das n-te Vorkommen des Zeichenkettenmusters

Wir können auch eine Zeichenfolge beim n-ten Vorkommen aus einer Datei ersetzen. Ersetze zum Beispiel „Gefahr“ nur beim zweiten Vorkommen durch „Sicherheit“,

[[email protected] ~]$ sed ‘s/danger/safety/2’ testfile.txt

Um „Gefahr“ beim zweiten Auftreten jeder Zeile der gesamten Datei zu ersetzen, verwenden Sie

[[email protected] ~]$ sed 's/danger/safety/2g' testfile.txt

Beispiel :11) Ersetze einen String in einer bestimmten Zeile

Um eine Zeichenfolge nur aus einer bestimmten Zeile zu ersetzen, verwenden Sie

[[email protected] ~]$ sed '4 s/danger/safety/' testfile.txt

Dadurch wird nur die Zeichenfolge aus der vierten Zeile der Datei ersetzt. Wir können auch eine Reihe von Zeilen anstelle einer einzelnen Zeile angeben,

[[email protected] ~]$  sed '4,9 s/danger/safety/' testfile.txt

Beispiel :12) Fügen Sie eine Zeile nach/vor der übereinstimmenden Suche hinzu

Um nach jeder Musterübereinstimmung eine neue Zeile mit etwas Inhalt hinzuzufügen, verwenden Sie die Option 'a' ,

[[email protected] ~]$ sed '/danger/a "This is new line with text after match"' testfile.txt

Um vor jeder Musterübereinstimmung eine neue Zeile mit etwas Inhalt hinzuzufügen, verwenden Sie die Option „i“,

[[email protected] ~]$ sed '/danger/i "This is new line with text before match" ' testfile.txt

Beispiel :13) Ändern Sie eine ganze Zeile mit übereinstimmendem Muster

Um eine ganze Zeile in eine neue Zeile zu ändern, wenn ein Suchmuster übereinstimmt, müssen wir die Option „c“ mit sed verwenden,

[[email protected] ~]$ sed '/danger/c "This will be the new line" ' testfile.txt

Wenn also das Muster mit „Gefahr“ übereinstimmt, wird die gesamte Zeile in die erwähnte Zeile geändert.

Erweiterte Optionen mit sed

Bis jetzt haben wir nur einfache Ausdrücke mit sed verwendet, jetzt werden wir einige fortgeschrittene Verwendungen von sed mit Regex besprechen,

Beispiel :14) Ausführen mehrerer sed-Befehle

Wenn wir mehrere sed-Ausdrücke ausführen müssen, können wir die Option „e“ verwenden, um die sed-Befehle zu verketten,

[[email protected] ~]$  sed -e 's/danger/safety/g' -e 's/hate/love/' testfile.txt

Beispiel :15) Erstellen einer Sicherungskopie vor dem Bearbeiten einer Datei

Um eine Sicherungskopie einer Datei zu erstellen, bevor wir sie bearbeiten, verwenden Sie die Option „-i.bak“,

[[email protected] ~]$ sed -i.bak -e 's/danger/safety/g'  testfile.txt

Dadurch wird eine Sicherungskopie der Datei mit der Erweiterung .bak erstellt. Sie können auch eine andere Erweiterung verwenden, wenn Sie möchten.

Beispiel :16) Löschen Sie eine Dateizeile, die mit einem Muster beginnt und endet

Um eine Zeile zu löschen, die mit einer bestimmten Zeichenfolge beginnt und mit einer anderen Zeichenfolge endet, verwenden Sie

[[email protected] ~]$ sed -e 's/^danger.*stops$//g' testfile.txt

Dadurch wird die Zeile mit „danger“ am Anfang und „stops“ am Ende gelöscht und es kann eine beliebige Anzahl von Wörtern dazwischen stehen, „.*“ definiert diesen Teil.

Beispiel :17) Zeilen anhängen

Um Inhalt vor jeder Zeile mit sed ®ex hinzuzufügen, verwenden Sie

[[email protected] ~]$ sed -e 's/.*/testing sed &/' testfile.txt

Also steht jetzt vor jeder Zeile „testing sed“.

Beispiel :18) Entfernen aller kommentierten Zeilen und leeren Zeilen

Um alle kommentierten Zeilen zu entfernen, d. h. Zeilen mit # und alle leeren Zeilen, verwenden Sie

[[email protected] ~]$ sed -e 's/#.*//;/^$/d' testfile.txt

Um nur kommentierte Zeilen zu entfernen, verwenden Sie

[[email protected] ~]$ sed -e 's/#.*//' testfile.txt

Beispiel :19) Holen Sie sich eine Liste aller Benutzernamen aus /etc/passwd

Um die Liste aller Benutzernamen aus der Datei /etc/passwd zu erhalten, verwenden Sie

[[email protected] ~]$  sed 's/\([^:]*\).*/\1/' /etc/passwd

eine vollständige Liste aller Benutzernamen wird als Ausgabe auf dem Bildschirm generiert.

Beispiel :20) Verhindert das Überschreiben von Systemverknüpfungen mit dem Befehl sed

Es ist bekannt, dass der Befehl „sed -i“ Systemverknüpfungen entfernt und anstelle der Verknüpfungsdatei nur reguläre Dateien erstellt. Um eine solche Situation zu vermeiden und ‘sed -i’ zu verhindern ‘ Um die Links nicht zu zerstören, verwenden Sie ‘–follow-symklinks ‘ Optionen mit dem ausgeführten Befehl.

Nehmen wir an, ich möchte SELinux auf CentOS- oder RHEL-Servern deaktivieren

[[email protected] ~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

Dies waren einige Beispiele, um sed zu zeigen, wir können diese Referenz verwenden, um sie nach Bedarf einzusetzen. Wenn Sie Fragen zu diesem oder einem anderen Artikel haben, teilen Sie uns dies bitte mit.

Auch lesen14 SCP-Befehlsbeispiele zum sicheren Übertragen von Dateien unter Linux


Linux
  1. 8 Tipps für die Linux-Kommandozeile

  2. Linux-Benutzer Befehls-Tutorial für Anfänger (mit Beispielen)

  3. Einführung in sed (Stream Editor):Nützliche Beispiele für sed-Befehle

  4. 10 Sed (Stream Editor)-Befehlsbeispiele

  5. sed-Befehlsbeispiele unter Linux

Linux OD Command Tutorial für Anfänger (6 Beispiele)

Linux w Command Tutorial für Anfänger (5 Beispiele)

Linux ss Command Tutorial für Anfänger (8 Beispiele)

Linux-Suchbefehl für Anfänger (8 Beispiele)

Micro – Ein befehlszeilenbasierter Texteditor für Linux

Verwendung des Linux-Befehls sed mit Beispielen