So verwenden Sie Sed unter Linux

Sed steht für Stream-Editor. Es ist ein kommandozeilenbasierter Editor für Linux. sed wird häufig zum Bearbeiten von Dateien als Teil eines Automatisierungsskripts in Linux verwendet, da normale Editoren aktive Benutzereingaben erfordern und Dateien außerhalb der Editor-Bildschirme nicht bearbeiten können. Sed wird am häufigsten zum Suchen und Ersetzen über die Befehlszeile verwendet.

Diese Art von Texteditor kann auch als nicht interaktiver Texteditor kategorisiert werden.

Sehen wir uns einige gängige Optionen zum Bearbeiten von Dateien mit Sed an. Als Beispiel nehmen wir folgende Datei:

$: cat test.txt Ein schneller brauner Hund sprang über die faule Katze. Linux-Betriebssystem. Der Wald in meiner Nähe hat eine Katze sowie Wölfe. 

Suchen und ersetzen

Um in einer Datei nach einer Zeichenfolge zu suchen und sie durch eine andere Zeichenfolge zu ersetzen, führen Sie Folgendes aus:

sed -i "s/cat/fox/g" test.txt

Hier die -ich Flag weist sed an, die Änderungen in die Datei zu schreiben. Ohne diese Flagge sed wird nur die Datei mit der geänderten Zeichenfolge anzeigen.

In den Anführungszeichen haben wir s/Katze/Fuchs/g. Der S ist für den Such- und Ersetzungsbefehl von sed. Dann haben wir den zu suchenden String, der ist Katze. Dann die Zeichenfolge, durch die es ersetzt werden soll, d. h. Fuchs. Schließlich haben wir das optionale g, die anweist sed um alle Vorkommen in allen Zeilen der Datei zu ersetzen. Ohne das g, sed ersetzt nur das erste Vorkommen von Katze auf jeder Zeile.

Auch hier kann Regex verwendet werden.

sed -i "s/f[a-z]*\./cat\./g"

Einfügung

Um Text vor einer Zeile mit einer übereinstimmenden Zeichenfolge einzufügen, verwenden Sie:

sed -i "/cat/i Start:" test.txt

Hier, Katze ist die gesuchte Zeichenfolge und Anfang: ist die Zeichenfolge, die vor der Zeile eingegeben werden soll, in der die gesuchte Zeichenfolge gefunden wird.

Um Text nach einer Zeile einzufügen, verwenden Sie auf ähnliche Weise:

sed -i "/fox/a Ende." test.txt

Löschen

Um eine Zeile zu löschen, die eine Teilzeichenfolge enthält, verwenden Sie:

sed -i "/Linux/d" test.txt

Um eine Zeile mit Zeilennummer zu löschen, z. in der ersten Zeile verwenden Sie:

sed -i '1d' test.txt

Mehrere Funktionen kombinieren

Um mehrere Funktionen zu kombinieren, z. suchen und ersetzen, löschen, in einem Befehl, -e Flagge verwendet werden.

sed -i -e "s/fox/cat/g" -e '2d' test.txt

? Beifall!