So ersetzen Sie alles nach dem Muster mit dem Befehl SED

So ersetzen Sie alles nach dem Muster mit dem Befehl SED

Ersatzaufgaben können auf unterschiedliche Weise unter Linux ausgeführt werden. Der Befehl 'sed' ist eine der Möglichkeiten, Ersatzaufgaben zu erledigen. Dieser Befehl kann verwendet werden, um den Text in einer Zeichenfolge oder einer Datei durch ein anderes Muster zu ersetzen. Wie Sie alles ersetzen können, nachdem das Matching -Muster mit dem Befehl "SED" in diesem Tutorial angezeigt wird.

Ersetzen Sie alles nach der Übereinstimmung in einer Zeichenfolge:

Wie der Teil einer Zeichenfolge basierend auf einem Matching -Muster ersetzt werden kann, und $ partition_column wurde in diesem Abschnitt dieses Tutorials gezeigt. Diese Variable funktioniert jedoch, wenn das Muster zu Beginn oder in der Mitte der Zeichenfolge ein Wort entspricht. Es ersetzt den Text nicht, 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, "eine beliebte Blog -Site". $ Partition_column.* wird verwendet, um den verbleibenden Teil nach dem Charakter zu definieren, 'a' '.

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

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


Das folgende Muster durchsucht das Wort 'Netz"In der Zeichenfolge und ersetzen Sie den verbleibenden Teil durch das"Netz"Durch den Text", "Eine beliebte Blog -Site"Wenn das Match 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 wird nach dem Ausführen des Befehls angezeigt. Hier ist 'Website' das letzte Wort der Zeichenfolge, und aus diesem Grund wurde kein Ersatz durchgeführt.

Beispiel-2: Ersetzen Sie alle nach der Übereinstimmung durch Muster

Der folgende Befehl sucht das Wort 'verprügeln'Global in der Zeichenfolge und ersetzen Sie alles durch das Wort, wenn das Wort in der Zeichenfolge existiert. ''G'wird hier für die globale Suche verwendet.

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

Die folgende Ausgabe wird nach dem Ausführen des Befehls angezeigt. Hier existiert 'Bash' in der Mitte der Saite, und der Ersatz wurde durchgeführt.

Ersetzen Sie alles nach der Übereinstimmung in einer Datei:

Alle Inhalte einer bestimmten Zeile oder mehrere Zeilen oder verbleibende Zeilen einer Datei nach der Übereinstimmung können mit der 'ersetzt werdensed' Befehl. Erstellen Sie eine Textdatei mit dem Namen Teilnahme.txt mit dem folgenden Inhalt, um die in diesem Abschnitt angegebenen Beispiele zu testen.

Teilnahme.txt

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

Beispiel -3: Ersetzen Sie alle Inhalte aus einer Zeile einer Datei nach der Übereinstimmung

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

$ cat Allendence.txt
$ sed "S/1769994.*/1586844 ist anwesend/"Anwesenheit.txt

Die folgende Ausgabe wird angezeigt, die die Befehle ausführen. Hier existiert die Suchnummer in der dritten Zeile der Datei, und der Ersatz wurde durchgeführt.

Beispiel -4: Ersetzen Sie alle Inhalte aus den verschiedenen Zeilen einer Datei nach der Übereinstimmung

Der folgende Befehl 'SED' zeigt die Verwendung der Variablen $ partition_column zum Ersetzen mehrerer Zeilen aus der Datei. Der Befehl sucht "110" zu Beginn jeder Zeile der Datei und ersetzt alles durch "110" durch den Text "Ungültiger Eintrag", in dem der übereinstimmende Text gefunden wird.

$ CAT -Besucherzahlen.txt
$ sed "s/^110.* $ Partition_column.*/Ungültige Eintrag/"Anwesenheit.txt

Nach dem Ausführen der Befehle wird die folgende Ausgabe angezeigt. '110' existiert in zwei Zeilen der Datei, die durch den Ersatztext ersetzt wurden.

Beispiel-5: Ersetzen Sie alle Inhalte aus einer Dateizeile einer Datei mit 'C' nach der Übereinstimmung

Die folgende 'sed"Befehl zeigt die Verwendung von 'C'alles nach dem Spiel ersetzen. Hier, 'C'Zeigt die Änderung an. Der Befehl sucht das Wort 'gegenwärtig"In der Datei und ersetzen Sie alles in der Linie durch den Text"Diese Linie wird ersetzt'Wenn das Wort in einer Zeile der Datei existiert.

$ CAT -Besucherzahlen.txt
$ sed '/präsent/c Diese Linie wird ersetzt' Anwesenheit.txt

Nach dem Ausführen der Befehle wird die folgende Ausgabe angezeigt. Das Wort "Gegenwart" existiert in den ersten beiden Zeilen der Datei, und diese beiden Zeilen wurden durch den Ersatztext ersetzt.

Beispiel-6: Ersetzen Sie alle Inhalte aus einer Zeile einer Datei basierend auf dem Start- und Endmuster

Manchmal ist es erforderlich, Text basierend auf dem Start- und Endmuster zu ersetzen. Der folgende Befehl 'SED' zeigt den Weg, um Start- und Endmuster zu definieren, um Zeilen aus einer Datei zu ersetzen. Der Befehl sucht diese Zeilen in der Datei, die mit der Nummer 110 beginnt und mit dem Wort "abwesend" endet und alles durch das Wort "ersetzt" ersetzt, in dem die Muster übereinstimmen.

$ CAT -Besucherzahlen.txt
$ sed -e 's/^110.*Abwesend $/ersetzt/g 'Anwesenheit.txt

Nach dem Ausführen der Befehle wird die folgende Ausgabe angezeigt. Hier beginnen die ersten und die vierte Zeilen mit der Nummer 110, aber das Wort "abwesend" existiert nur in der vierten Zeile. Die vierte Zeile der Datei wurde also durch den Ersatztext ersetzt.

Abschluss:

Der Befehl 'sed' ist ein sehr leistungsstarkes Werkzeug von Linux, um verschiedene Arten von Aufgaben der Textverarbeitung auszuführen. Die Ersatzaufgabe, die auf dem Matching -Muster basiert. $ Partition_column, 'c' und '.*'wird in diesem Tutorial verwendet, um alles einer Zeile der Datei zu ersetzen, in der das Matching -Muster existiert. Die Verwendungen einiger Zeichen der Definition von Mustern haben sich hier gezeigt, wie "^" und "$". Es gibt viele andere Zeichen, um das Muster im regulären Ausdruck für Suchzwecke zu definieren. Ich hoffe.