So setzen Sie eine Linie nach der Übereinstimmung mit 'SED' ein?

So setzen Sie eine Linie nach der Übereinstimmung 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 unter Linux auszuführen, z. B. einen bestimmten Text oder eine bestimmte Zeile basierend auf der Match einfügen, aktualisieren und löschen. Sie können einen Text auf unterschiedliche Weise in eine Zeichenfolge oder eine Datei einfügen, indem Sie den Befehl „SED“ verwenden.

So fügen Sie eine Zeile ein, nachdem in diesem Tutorial eine Übereinstimmung in einer Zeichenfolge oder eine Zeile angezeigt wird.

Fügen Sie eine Zeile in die Zeichenfolge ein

Eine neue Zeile kann nach einem String -Wert mit dem Befehl „SED“ eingefügt werden, wenn das im Befehl definierte Muster mit einem Teil des Zeichenfolgewerts übereinstimmt.

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

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

Der folgende Befehl sucht in der Zeichenfolge, "Ich mag programmieren" und eine Textzeile "Magst du das Programmieren mögen du es mit dem Programmieren?”Wird nach der Zeichenfolge eingefügt, wenn die Suchzeichenfolge vorliegt.

Hier wird mit dem "&" -Scharakter die Linie nach der Zeichenfolge eingefügt.

$ echo "Ich mag programmieren."| sed 's/inng/& magst du gerne programmieren?/'

Die folgende Ausgabe zeigt, dass „inng“ in der Zeichenfolge nicht vorhanden ist und nach der Zeichenfolge keine Linie eingefügt wird.


Der folgende Befehl sucht nach „ing."In der Zeichenfolge" Ich mag programmieren "und es existiert in der Zeichenfolge.

$ echo "Ich mag programmieren."| sed 's/ing./& Magst du gerne programmieren?/'

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

Fügen Sie eine Zeile in eine Datei ein

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

A. Verwenden Sie "A" im Befehl "SED"

Das „A“ kann im Suchmuster der „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. Verwenden Sie "I" im Befehl "SED"

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.

Fügen Sie die Zeile (n) in eine Datei ein, die auf dem Muster basiert:

Erstellen Sie eine Registerkartendelimited Textdatei mit dem Namen Produkte.txt mit dem folgenden Inhalt, um die Verwendung der obigen Flagge im Befehl „SED“ anzuzeigen.

Produkte.txt

ID -Name
01 Peitschencreme
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 im Befehl „SED“ verwendeten Muster.

Hier zeigt der erste Befehl den vorhandenen Inhalt der Datei an. Der Befehl "SED" wird nach den ersten beiden Zeilen der Datei den Text "B01 Backpulver" angehängt. Der letzte Befehl wird verwendet, um zu überprüfen, ob der Dateiinhalt geändert wird oder nicht.

$ CAT -Produkte.txt
$ sed '2 a b01 \ tbaking pulver' Produkte.txt
$ CAT -Produkte.txt

Nach dem Ausführen des obigen Befehls wird die folgende Ausgabe angezeigt.

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

Der folgende Befehl zeigt den Weg zum Anhängen einer neuen Zeile nach der letzten Zeile der Datei. Der erste und letzte Befehl zeigt den vorhandenen Inhalt der Datei vor und nach der Ausführung des Befehls „SED“ an. Das Symbol „$“ wird im Muster des Befehls „SED“ verwendet, um die letzte Zeile der Datei zu erwähnen.

$ CAT -Produkte.txt
$ sed '$ a b01 \ tbaking pulver' Produkte.txt
$ CAT -Produkte.txt

Nach dem Ausführen des obigen Befehls wird die folgende Ausgabe angezeigt.

Beispiel-4: Fügen Sie eine Linie überall in der Datei ein, nachdem Sie ein Muster mit dem "A" übereinstimmen

Der folgende Befehl „SED“ zeigt, wie eine neue Zeile anhand des Matching -Musters überall in der Datei 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.

$ CAT -Produkte.txt
$ sed '/^S01.*/a b01 \ tbakpulver 'Produkte.txt
$ CAT -Produkte.txt

Die folgende Ausgabe wird nach dem Ausführen des Befehls angezeigt.


Der folgende Befehl „SED“ sucht in jede Zeile, die mit "Pulver" endet und die neue Zeile danach einfügt. Die dritte Zeile der Datei endet mit "Pulver". Die neue Linie wird also nach dieser Zeile eingefügt.

$ CAT -Produkte.txt
$ sed '/powder $/a b01 \ tbakpulver' Produkte.txt
$ CAT -Produkte.txt

Nach dem Ausführen der obigen Befehle wird die folgende Ausgabe angezeigt.

Beispiel-5: Fügen Sie mehrere Zeilen nach dem Matching-Muster mit "A" ein

Der folgende Befehl „SED“ zeigt die Möglichkeit, mehrere Zeilen im Inhalt einer Datei basierend auf dem Matching -Muster hinzuzufügen.

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

$ CAT -Produkte.txt
$ sed '/^[a-c]/a b01 \ tbakpulver \ nb02 \ tbakes Soda' Produkte.txt
$ CAT -Produkte.txt

Nach dem Ausführen der obigen Befehle wird die folgende Ausgabe angezeigt.

Beispiel-6: Fügen Sie eine Zeile ein, nachdem Sie ein Muster mit dem "I" angepasst haben

$ CAT -Produkte.txt
$ sed '/creme/i b01 \ tbakpulver' Produkte.txt
$ CAT -Produkte.txt

Nach dem Ausführen der obigen Befehle wird die folgende Ausgabe angezeigt.

Beispiel-7: Fügen Sie eine Zeile nach dem Matching-Muster mit der Option "-i" dauerhaft ein

Der folgende Befehl „SED“ zeigt, wie der Inhalt der Datei dauerhaft geändert wird. Die Option "I" wird mit dem Befehl "SED" verwendet, um eine neue Zeile in die Datei basierend auf dem Muster einzulegen.

$ CAT -Produkte.txt
$ sed -i '/e $/a g01 \ tghee' Produkte.txt
$ CAT -Produkte.txt

Nach dem Ausführen der obigen Befehle wird die folgende Ausgabe angezeigt.

Abschluss:

Die Möglichkeiten zum Einfügen von zwei oder mehr Zeilen in eine Datei mit dem Befehl „SED“ mit Mustern wurden in diesem Tutorial gezeigt, um dem Leser diesen Befehl zum Einfügen von Zeilen in die vorübergehende oder dauerhafte Basis des Musters zu unterstützen.