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.
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 vorhanden1999979 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.