sed

So ersetzen Sie das letzte Vorkommen mit 'sed'

So ersetzen Sie das letzte Vorkommen mit 'sed'
Der Befehl 'sed' wird in Linux für verschiedene Arten von Textoperationen wie Einfügen, Löschen, Ersetzen usw. verwendet. Verschiedene Arten von Ersetzungsaufgaben können einfach mit dem Befehl 'sed' durchgeführt werden. Jede Ersetzungsaufgabe kann basierend auf dem Suchtext oder -muster durchgeführt werden. Der Suchtext oder das Suchmuster kann mehrmals in der Zeichenfolge oder einer Datei vorkommen, in der die Suche durchgeführt wird. Wie Sie das letzte Vorkommen des Suchtextes oder Musters ersetzen können, wurde in diesem Tutorial gezeigt shown.

Ersetzen Sie das letzte Vorkommen des Textes in einer Zeichenfolge:

Dieser Abschnitt zeigt, wie das letzte Vorkommen des Suchmusters in einer Zeichenfolge mit dem Befehl 'sed' ersetzt werden kann.

Beispiel-1: Ersetzen Sie das letzte Vorkommen eines Wortes basierend auf einem Muster

Der folgende 'sed'-Befehl sucht das Wort 'PHP' in der Zeichenfolge und ersetzen Sie das gesuchte Wort durch das Wort 'AngularJS' wenn das Wort in der Zeichenfolge vorhanden ist.

$ echo "Java PHP Bash Python JavaScript PERL PHP Laravel" |
sed s/\(.*\)PHP/\1AngularJS/'

Die folgende Ausgabe erscheint nach dem Ausführen des Befehls. Hier das Wort 'PHP' kommt zweimal in der Zeichenfolge vor und das letzte Vorkommen wurde durch das Wort' AngularJS'.

Beispiel-2: Ersetzen Sie das letzte Vorkommen eines auf Ziffern basierenden Musters

Der folgende 'sed'-Befehl durchsucht jede beliebige Ziffer in der Zeichenfolge und ersetzt die letzte Ziffer durch die Zahl 9.

$ echo "Der erste Zählerwert 2. Der zweite Zählerwert 4" |
sed s/\(.*\)[0-9])*/\19/'

Die folgende Ausgabe erscheint nach dem Ausführen des Befehls. Hier erscheint die Ziffer zweimal in der Zeichenfolge und die letzte Ziffer, 4, wurde durch die Zahl ersetzt 9.

Beispiel-3: Ersetzen Sie die letzte Ziffer einer Zahl basierend auf einem Muster

Der folgende 'sed'-Befehl ersetzt die letzte Ziffer, die im String-Wert vorhanden ist, durch den Wert mit Doppelnull (0 0).

$ echo "Der Produktpreis beträgt 500 $." | sed 's/\(.*\)[0-9]/\100/'

Die folgende Ausgabe erscheint nach dem Ausführen des Befehls. Hier, 500 existiert im String-Wert. Also, gemäß dem Ersetzungsbefehl, die letzte Null von 500 wurde durch zwei Doppelnull ersetzt, und der ersetzte Wert ist 5000.

Beispiel-4: Ersetze das letzte Vorkommen eines Wortes durch ein anderes Wort

Der folgende 'sed'-Befehl sucht das Wort 'Juni' in der Zeichenfolge und ersetzen Sie das letzte Vorkommen des Wortes durch den Wert, 'Kann'.

$ printf "%s\n" Jan Feb Jun Apr Jun Dez | tr '\n'" |
sed s/\(.*\)Jun/\1Mai/' | tr" '\n'

Die folgende Ausgabe erscheint nach dem Ausführen des Befehls. Hier das Wort 'Juni' kommt zweimal in der Zeichenfolge vor und das letzte Vorkommen wurde durch das Wort . ersetzt 'Kann'.

Ersetzen Sie das letzte Vorkommen eines Textes in einer Datei:

Erstellen Sie eine Textdatei mit dem Namen Der Umsatz.TXT mit dem folgenden Inhalt, um den Befehl 'sed' zu testen, der in diesem Teil des Tutorials verwendet wird, um das letzte Vorkommen eines Textes basierend auf dem Muster zu ersetzen.

Der Umsatz.TXT

Monat Jahr Betrag
Januar 2018 $ 200000
März 2019 $ 300000
April 2019 150000 $
März 2020 $ 350000
Mai 2019 210000 $
Januar 2020 240000 $

Beispiel-5: Ersetze das letzte Vorkommen eines Wortes durch ein anderes Wort

Der folgende 'sed'-Befehl sucht das Wort 'Januar' in der Datei und ersetzen Sie das letzte Vorkommen dieses Wortes durch das Wort, 'Juli'.

$ Katzenverkäufe.TXT
$ sed '$ s/Januar/Juli/' Verkäufe.TXT

Die folgende Ausgabe wird erscheinen, nachdem die Befehle ausgeführt wurden. Das Wort 'Januar' erscheint zweimal in der Datei. Das letzte Vorkommen, das im 7 . existiertdas Zeile der Datei wurde durch das Wort . ersetzt 'Juli' in der Ausgabe.

Beispiel-6: Ersetze das letzte Vorkommen einer Zahl durch eine andere Zahl

'Tak' Befehl wird verwendet, um den Inhalt der Datei umzukehren. 'Tak' Der Befehl wird mit dem Befehl 'sed' im folgenden Befehl verwendet, um das letzte Vorkommen von . zu ersetzen '2019' mit dem Wort, '2017'.

$ Katzenverkäufe.TXT
$ tac-Verkäufe.txt | sed '0,/2019/s/2019/2017/' | tac

Die folgende Ausgabe wird erscheinen, nachdem die Befehle ausgeführt wurden. Hier der Jahreswert, '2019' erscheint dreimal in der Datei. Der Erste, 'Tak' Befehl hat den Inhalt der Datei umgekehrt und die Ausgabe an den . gesendet 'sed' Befehl zum Ersetzen des ersten Vorkommens von '2019' Dies ist das letzte Vorkommen in der Datei nach dem Jahreswert, '2017'. Nach dem Austausch wurde die Ausgabe an die 'Tak' Befehl um die Ausgabe wieder umzukehren. Auf diese Weise wird das letzte Vorkommen von '2019' wurde durch den Wert ersetzt, '2017'.

Beispiel-7: Ersetze alles in einer Zeile basierend auf dem letzten Vorkommen eines Wortes

Folgende 'sed' Der Befehl ersetzt die Zeile durch einen durch Tabulatoren (\t) getrennten Text, wobei die Zeile mit der Zeichenfolge beginnt 'Beschädigen' zum letzten Mal in der Datei.

$ Katzenverkäufe.TXT
$ tac-Verkäufe.txt | sed '0,/^Mär.*/s/^März.*/Juli\t\t2018\t$ 400000/' | tac

Die folgende Ausgabe wird erscheinen, nachdem die Befehle ausgeführt wurden. Zwei Zeilen in der Datei beginnen mit der Zeichenfolge, 'Beschädigen', und das letzte Vorkommen dieser Zeichenfolge erscheint im 5das Linie. Der Erste 'Tak' Befehl wurde verwendet, um den Inhalt der Datei umzukehren und die Ausgabe an die 'sed' Befehl. 'sed' Befehl hat die Zeile durch einen Text ersetzt, 'Juli 2018 $ 400000' wo die Suchzeichenfolge zum ersten Mal gefunden wurde. Die Ausgabe von die 'sed' Befehl wurde an den . gesendet 'Tak' Befehl erneut, um die Ausgabe umzukehren, die den Hauptinhalt der Datei darstellt.

Fazit:

Der Befehl 'sed' kann verwendet werden, um jeden Teil eines Strings oder einer Zeile der Datei auf verschiedene Weise durch die Verwendung von Mustern für reguläre Ausdrücke zu ersetzen replace. Dieses Tutorial zeigte die Möglichkeiten, das letzte Vorkommen des Suchtextes in einer Zeichenfolge oder einer Datei zu ersetzen, indem mehrere 'sed'-Befehle verwendet werden. Wie der 'tac'-Befehl mit dem 'sed'-Befehl verwendet werden kann, um das letzte Vorkommen des Suchtextes zu ersetzen, wurde auch in diesem Tutorial gezeigt in. Aber alle hier verwendeten Befehle erzeugen die Ausgabe temporär. Sie müssen die Option '-i' mit dem Befehl 'sed' verwenden, um den Inhalt der Datei basierend auf dem Muster dauerhaft zu ändern.

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...
So steigern Sie die FPS unter Linux?
FPS steht für Bilder pro Sekunde. Die Aufgabe von FPS besteht darin, die Bildrate bei Videowiedergaben oder Spielleistungen zu messen. In einfachen Wo...