sed

So fügen Sie eine Zeile nach dem Match mit 'sed' ein?

So fügen Sie eine Zeile nach dem Match mit 'sed' ein?

Einer der nützlichen und leistungsstarken Befehle von Linux ist der Befehl „sed“. Dieser Befehl wird verwendet, um verschiedene Arten von Aufgaben in Linux auszuführen, z. B. Einfügen, Aktualisieren und Löschen eines bestimmten Textes oder einer bestimmten Zeile basierend auf der Übereinstimmung. Sie können einen Text auf verschiedene Weise in einen String oder eine Datei einfügen, indem Sie den Befehl "sed" verwenden using.

In diesem Tutorial wird gezeigt, wie Sie eine Zeile einfügen, nachdem Sie eine Übereinstimmung in einem String oder einer Zeile gefunden haben shown.

Fügen Sie eine Zeile in die Zeichenfolge ein

Mit dem Befehl „sed“ kann nach jedem String-Wert eine neue Zeile eingefügt werden, wenn das im Befehl definierte Muster mit einem beliebigen Teil des String-Werts übereinstimmt.

Das folgende Beispiel zeigt, wie nach einem Zeichenfolgenwert eine neue Zeile hinzugefügt werden kann, wenn eine bestimmte Zeichenfolge irgendwo im Zeichenfolgenwert vorhanden ist.

Beispiel-1: Fügen Sie eine Zeile in eine Zeichenfolge ein, nachdem Sie eine Übereinstimmung gefunden haben

Der folgende Befehl sucht nach „inng“ in der Zeichenfolge „Ich mag Programmieren“ und einer Textzeile „Möchtest du programmieren?“?” wird nach dem String eingefügt, wenn der Suchstring existiert.

Hier wird das Zeichen „&“ verwendet, um die Zeile nach der Zeichenfolge einzufügen.

$ echo "Ich programmiere gerne." | sed 's/inng/& Programmierst du gerne?/'

Die folgende Ausgabe zeigt, dass „inng“ im String nicht existiert und keine Zeile nach dem String eingefügt wird.


Der folgende Befehl sucht nach „ing.” im String, „Ich programmiere gerne“ und es existiert im String.

$ echo "Ich programmiere gerne." | sed 's/ing./& Programmierst du gerne?/'

Die folgende Ausgabe zeigt, dass die neue Zeile nach der Zeichenfolge hinzugefügt wird.

Eine Zeile in eine Datei einfügen

Es gibt zwei Möglichkeiten, eine Zeile einzufügen, nachdem eine Übereinstimmung in einer unten genannten Datei gefunden wurde. Wenn der Befehl „sed“ ohne die Option „-i“ verwendet wird, bleibt der Inhalt der Datei unverändert und die Ausgabe zeigt den Dateiinhalt mit dem eingefügten Zeilenumbruch. Sie müssen die Option „-i“ mit dem Befehl „sed“ verwenden, um die neue Zeile dauerhaft in die Datei einzufügen, wenn das passende Muster in der Datei vorhanden ist.

EIN. „a“ im „sed“-Befehl verwenden

Das „a“ kann im Suchmuster des „sed“ verwendet werden, um eine oder mehrere Zeilen in einer Datei nach der Zeile anzuhängen, in der das Suchmuster übereinstimmt, oder nach einer bestimmten Zeilennummer.

B. „i“ im „sed“-Befehl verwenden

Das „i“ kann im Suchmuster des Befehls „sed“ verwendet werden, um eine oder mehrere Zeilen in eine Datei vor der Zeile einzufügen, in der das Suchmuster übereinstimmt.

Zeile(n) in eine Datei basierend auf dem Muster einfügen:

Erstellen Sie eine tabulatorgetrennte Textdatei namens Produkte.TXT mit dem folgenden Inhalt, um die Verwendung des obigen Flags im „sed“-Befehl anzuzeigen.

Produkte.TXT

ID        Name
01        Schlagsahne
02        Kakaopulver
03        Zucker
04        Ei
05        Mehl

Beispiel-2: Fügen Sie eine Zeile nach einer bestimmten Zeilennummer mit dem „a“ ein

Die folgenden Befehle zeigen, wie eine neue Zeile nach einer bestimmten Zeilennummer der Produkte hinzugefügt werden kann.txt-Datei, basierend auf dem Muster, das im „sed“-Befehl verwendet wird.

Hier zeigt der erste Befehl den vorhandenen Inhalt der Datei an. Der Befehl „sed“ fügt den Text „b01 Backpulver“ nach den ersten beiden Zeilen der Datei an. Der letzte Befehl wird verwendet, um zu überprüfen, ob der Dateiinhalt geändert wurde oder nicht.

$ Katzenprodukte.TXT
$ sed '2 a b01\tBackpulver' Produkte.TXT
$ Katzenprodukte.TXT

Die folgende Ausgabe wird erscheinen, nachdem der obige Befehl ausgeführt wurde.

Beispiel-3: Fügen Sie eine Zeile nach der letzten Zeile mit dem „a“ ein

Der folgende Befehl zeigt, wie Sie nach der letzten Zeile der Datei eine neue Zeile anhängen. Der erste und letzte Befehl zeigt den vorhandenen Inhalt der Datei vor und nach der Ausführung des „sed“-Befehls. Das „$“-Symbol wird im Muster des „sed“-Befehls verwendet, um die letzte Zeile der Datei zu erwähnen.

$ Katzenprodukte.TXT
$ sed '$ a b01\tBackpulver' Produkte.TXT
$ Katzenprodukte.TXT

Die folgende Ausgabe wird erscheinen, nachdem der obige Befehl ausgeführt wurde.

Beispiel-4: Fügen Sie eine Zeile an einer beliebigen Stelle in der Datei ein, nachdem Sie ein Muster mit dem „a“ gefunden haben

Der folgende „sed“-Befehl zeigt, wie eine neue Zeile an einer beliebigen Stelle in der Datei basierend auf dem übereinstimmenden Muster hinzugefügt werden kann. Das im Befehl „sed“ verwendete Muster durchsucht jede Zeile, die mit „s01“ beginnt, und fügt die neue Zeichenfolge danach hinzu. Die vierte Zeile der Datei beginnt mit „s01“ und die neue Zeile wird nach dieser Zeile eingefügt.

$ Katzenprodukte.TXT
$ sed '/^s01.*/a b01\tBackpulver-Produkte.TXT
$ Katzenprodukte.TXT

Die folgende Ausgabe erscheint nach dem Ausführen des Befehls.


Der folgende „sed“-Befehl durchsucht jede Zeile, die mit „Powder“ endet, und fügt die neue Zeile dahinter ein. Die dritte Zeile der Datei endet mit „Powder“. Die neue Zeile wird also nach dieser Zeile eingefügt.

$ Katzenprodukte.TXT
$ sed '/Powder$/a b01\tBackpulver' Produkte.TXT
$ Katzenprodukte.TXT

Die folgende Ausgabe erscheint, nachdem Sie die obigen Befehle ausgeführt haben.

Beispiel-5: Fügen Sie mehrere Zeilen nach dem übereinstimmenden Muster mit „a“ ein

Der folgende „sed“-Befehl zeigt die Möglichkeit, mehrere Zeilen innerhalb des Inhalts einer Datei basierend auf dem übereinstimmenden Muster hinzuzufügen.

Hier werden zwei Zeilen nach der dritten Zeile hinzugefügt, entsprechend dem Muster.

$ Katzenprodukte.TXT
$ sed '/^[a-c]/a b01\tBackpulver\nb02\tBackpulver' Produkte.TXT
$ Katzenprodukte.TXT

Die folgende Ausgabe erscheint, nachdem Sie die obigen Befehle ausgeführt haben.

Beispiel-6: Fügen Sie eine Linie ein, nachdem Sie ein Muster mit dem „I“ gefunden haben

$ Katzenprodukte.TXT
$ sed '/cream/i b01\tBackpulver' Produkte.TXT
$ Katzenprodukte.TXT

Die folgende Ausgabe erscheint, nachdem Sie die obigen Befehle ausgeführt haben.

Beispiel-7: Fügen Sie mit der Option „-i“ eine Zeile dauerhaft nach dem passenden Muster ein

Der folgende „sed“-Befehl zeigt, wie Sie den Inhalt der Datei dauerhaft ändern können. Die Option „i“ wird mit dem Befehl „sed“ verwendet, um basierend auf dem Muster eine neue Zeile in die Datei einzufügen.

$ Katzenprodukte.TXT
$ sed -i '/e$/a g01\tGhee' Produkte.TXT
$ Katzenprodukte.TXT

Die folgende Ausgabe erscheint, nachdem Sie die obigen Befehle ausgeführt haben.

Fazit:

Die Möglichkeiten zum Einfügen von zwei oder mehr Zeilen in eine Datei mithilfe des Befehls „sed“ mit Muster wurden in diesem Tutorial gezeigt, um dem Leser zu helfen, diesen Befehl anzuwenden, um Zeilen temporär oder dauerhaft basierend auf dem Muster einzufügen.

So ändern Sie Mauszeiger- und Cursorgröße, Farbe und Schema unter Windows 10
Der Mauszeiger und der Cursor in Windows 10 sind sehr wichtige Aspekte des Betriebssystems. Dies kann auch für andere Betriebssysteme gesagt werden, a...
Kostenlose und Open-Source-Spiele-Engines für die Entwicklung von Linux-Spielen
Dieser Artikel behandelt eine Liste von kostenlosen und Open-Source-Spiele-Engines, die für die Entwicklung von 2D- und 3D-Spielen unter Linux verwend...
Shadow of the Tomb Raider für Linux Tutorial
Shadow of the Tomb Raider ist die zwölfte Erweiterung der Tomb Raider-Reihe – ein Action-Adventure-Franchise von Eidos Montrealdos. Das Spiel wurde vo...