sed

So ersetzen Sie alles nach dem Muster mit dem Befehl 'sed'

So ersetzen Sie alles nach dem Muster mit dem Befehl 'sed'

Ersetzungsaufgaben können in Linux auf unterschiedliche Weise erledigt werden. Der Befehl 'sed' ist eine der Möglichkeiten, eine Ersetzungsaufgabe auszuführen. Dieser Befehl kann verwendet werden, um Text in einer Zeichenfolge oder einer Datei durch ein anderes Muster zu ersetzen. Wie Sie alles nach dem passenden Muster mit dem 'sed'-Befehl ersetzen können, wird in diesem Tutorial gezeigt.

Ersetzen Sie alles nach der Übereinstimmung in einer Zeichenfolge:

Wie der Teil eines Strings basierend auf einem passenden Muster und $PARTITION_COLUMN ersetzt werden kann, wurde in diesem Abschnitt dieses Tutorials gezeigt. Aber diese Variable funktioniert, wenn das Muster mit einem beliebigen Wort am Anfang oder in der Mitte der Zeichenfolge übereinstimmt. Es wird den Text nicht ersetzen, wenn das Muster mit dem letzten Wort der Zeichenfolge übereinstimmt.

Beispiel-1: Ersetzen Sie alle nach der Übereinstimmung mit $PARTITION_COLUMN

Der folgende Befehl sucht das Zeichen 'a' und der verbleibende Teil nach 'a' wird durch den Text "eine beliebte Blog-Site" ersetzt. $PARTITION_COLUMN.* wird verwendet, um den verbleibenden Teil nach dem Zeichen 'a' zu definieren.

$ echo "LinuxHint ist eine Website" | sed "s/a $PARTITION_COLUMN.*/eine beliebte Blog-Site/"

Die folgende Ausgabe erscheint nach dem Ausführen des Befehls. Hier wurde "eine Website" durch "eine beliebte Blog-Site" ersetzt.


Das folgende Muster sucht nach dem Wort 'Netz'  in der Zeichenfolge und ersetzen Sie den verbleibenden Teil durch das 'Netz' nach dem Text, 'eine beliebte Blog-Site' wenn die Übereinstimmung existiert und 'Netz' ist nicht der Teil des letzten Wortes der Zeichenfolge.

$ echo "LinuxHint ist eine Website" | sed "s/web.* $PARTITION_COLUMN.*/eine beliebte Blog-Site/"

Die folgende Ausgabe erscheint nach dem Ausführen des Befehls. Hier ist 'website' das letzte Wort der Zeichenfolge, und aus diesem Grund wurde keine Ersetzung vorgenommen.

Beispiel-2: Ersetzen Sie alle nach Übereinstimmung mit Muster

Der folgende Befehl sucht nach dem Wort 'bash' global im String und ersetze alles durch das Wort, wenn das Wort im String vorhanden ist. 'G' wird hier für die globale Suche verwendet.

$ echo "Ich mag Bash-Programmierung" | sed "s/bash.*/Python-Skript/g"

Die folgende Ausgabe erscheint nach dem Ausführen des Befehls. Hier existiert 'bash' in der Mitte des Strings und der Ersatz wurde durchgeführt.

Ersetzen Sie alles nach dem Match in einer Datei:

Der gesamte Inhalt einer bestimmten Zeile oder mehrerer Zeilen oder verbleibender Zeilen einer Datei nach dem Match kann mit dem 'sed' Befehl. Erstellen Sie eine Textdatei mit dem Namen Teilnahme.TXT mit den folgenden Inhalten, um die in diesem Abschnitt gezeigten Beispiele zu testen.

Teilnahme.TXT

1108885 ist vorhanden
1999979 ist anwesend
1769994 fehlt
1105656 fehlt
1455999 fehlt

Beispiel -3: Ersetzen Sie den gesamten Inhalt einer Zeile einer Datei nach dem Match

Der folgende 'sed'-Befehl durchsucht die Nummer 1769994 in der Datei, und alles mit der Nummer wird durch den Text '1586844 ist vorhanden' ersetzt, wenn die Nummer in einer beliebigen Zeile der Datei vorhanden ist.

$ Katze Allendance.TXT
$ sed "s/1769994.*/1586844 ist anwesend/"Anwesenheit.TXT

Die folgende Ausgabe wird angezeigt, wenn die Befehle ausgeführt werden. Hier steht die Suchnummer in der dritten Zeile der Datei, und die Ersetzung ist erfolgt.

Beispiel -4: Ersetzen Sie den gesamten Inhalt aus den mehreren Zeilen einer Datei nach dem Match

Der folgende 'sed'-Befehl zeigt die Verwendung der Variablen $PARTITION_COLUMN zum Ersetzen mehrerer Zeilen aus der Datei. Der Befehl sucht '110' am Anfang jeder Zeile der Datei und ersetzt alles durch '110' durch den Text 'Ungültiger Eintrag', wo der passende Text gefunden wird.

$ Katzenbesuch.TXT
$ sed "s/^110.* $PARTITION_COLUMN.*/Ungültiger Eintrag/" Anwesenheit.TXT

Die folgende Ausgabe wird erscheinen, nachdem die Befehle ausgeführt wurden. '110' existiert in zwei Zeilen der Datei, und diese wurden durch den ersetzenden Text ersetzt.

Beispiel-5: Ersetzen Sie den gesamten Inhalt einer Zeile einer Datei mit 'c' nach der Übereinstimmung

Folgende 'sed'Befehl zeigt die Verwendung von 'c' um alles nach dem Spiel zu ersetzen. Hier, 'c' zeigt die Änderung an. Der Befehl sucht nach dem Wort 'vorhanden' in der Datei und ersetze alles in der Zeile durch den Text, 'Diese Zeile wird ersetzt' wenn das Wort in einer Zeile der Datei vorhanden ist.

$ Katzenbesuch.TXT
$ sed '/present/c Diese Zeile wird ersetzt durch ' Anwesenheit.TXT

Die folgende Ausgabe wird erscheinen, nachdem die Befehle ausgeführt wurden. Das Wort 'präsent' existiert in den ersten beiden Zeilen der Datei, und diese beiden Zeilen wurden durch den ersetzenden Text ersetzt.

Beispiel-6: Ersetzen Sie den gesamten Inhalt einer Zeile einer Datei basierend auf dem Start- und Endmuster

Manchmal ist es erforderlich, Text basierend auf dem Anfangs- und Endmuster zu ersetzen. Der folgende 'sed'-Befehl zeigt, wie Sie Start- und Endmuster definieren, um Zeilen aus einer Datei zu ersetzen. Der Befehl durchsucht die Zeilen in der Datei, die mit der Nummer 110 beginnen und mit dem Wort 'absent' enden, und ersetzt alles durch das Wort 'replaced', wo die Muster übereinstimmen.

$ Katzenbesuch.TXT
$ sed -e 's/^110.*abwesend$/ersetzt/g' Anwesenheit.TXT

Die folgende Ausgabe wird erscheinen, nachdem die Befehle ausgeführt wurden. Hier beginnen die erste und die vierte Zeile mit der Zahl 110, aber das Wort 'absent' existiert nur in der vierten Zeile. Die vierte Zeile der Datei wurde also durch den ersetzenden Text ersetzt.

Fazit:

Der Befehl 'sed' ist ein sehr mächtiges Werkzeug von Linux, um verschiedene Arten von Aufgaben im Zusammenhang mit der Textverarbeitung auszuführen. Die Ersetzungsaufgabe basierend auf dem übereinstimmenden Muster wird in diesem Tutorial erläutert, indem verschiedene Arten von Mustern im Befehl 'sed' verwendet werden. $PARTITION_COLUMN, 'c' und '.*' wird in diesem Tutorial verwendet, um alles in einer Zeile der Datei zu ersetzen, in der das übereinstimmende Muster vorhanden ist. Die Verwendung einiger Zeichen definierender Muster wurde hier gezeigt, wie z. B. '^' und '$'. Viele andere Zeichen existieren, um das Muster in regulären Ausdrücken für Suchzwecke zu definieren. Ich hoffe, dieses Tutorial wird dem Leser helfen, die Grundlagen des Ersetzens von allem aus einer Datei nach dem Spiel zu kennen.

Herunterladen und Spielen von Sid Meier's Civilization VI unter Linux and
Einführung in das Spiel Civilization 6 ist eine moderne Version des klassischen Konzepts, das in der Reihe der Age of Empires-Spiele eingeführt wurde....
So installieren und spielen Sie Doom unter Linux
Einführung in Doom Die Doom-Serie entstand in den 90er Jahren nach der Veröffentlichung des ursprünglichen Doom. Es war sofort ein Hit und seitdem hat...
Vulkan für Linux-Benutzer
Mit jeder neuen Grafikkartengeneration stoßen Spieleentwickler an die Grenzen der grafischen Wiedergabetreue und kommen dem Fotorealismus einen Schrit...