Wie machen Sie mehrere SED -Ersatz

Wie machen Sie mehrere SED -Ersatz
Der Befehl SED (Stream Editor) kann verschiedene Funktionen auf Streams in UNIX/Linux ausführen. Zum Beispiel: Suche, Suche und Ersetzen, Einfügen/Löschen usw. Es wird jedoch hauptsächlich zum Auffinden und Ersetzen von Texten verwendet. Der Befehl SED ermöglicht das Bearbeiten von Dateien, ohne sie zu öffnen. Da es sich um ein Befehlszeilen-Tool handelt, kann es auch in Skripten implementiert werden.

In diesem Handbuch zeigen wir, wie die Mehrfachleitungen in einer einzelnen Datei durchgeführt werden können.

Text mit SED ersetzen

Erstellen eines Beispieltextes
Der SED -Befehl betreibt eine definierte Aufgabe in einem Stream. Zu Demonstrationszwecken werden wir eine Dummy -Datei erstellen, die als Stream dient. Erstellen Sie eine Textdatei mit dem folgenden Befehl:

Katze < test.txt
der schnelle braune Fuchs
springt über den faulen Hund
Eof

Überprüfen Sie den Inhalt der Datei mit dem folgenden Befehl:

$ CAT -Test.txt

Text ersetzen
Um Texte zu ersetzen, lautet die allgemeine Befehlsstruktur wie folgt:

$ sed 's /// g'

Hier sucht SED nach dem im angegebenen Stream angegebenen Muster und ersetzen Sie ihn durch den angegebenen Ersatztext. Das G -Flag sucht SED, der den gesamten Text nach Musterübereinstimmungen durchsucht.

Probieren wir es in unserer Demo -Datei aus. Führen Sie den folgenden Befehl aus:

$ sed 's/the/Hallo/g' Test.txt

Mehrfachersatz durchführen

Im letzten Beispiel haben wir ein einzelnes Textmuster ersetzt. Was ist, wenn Sie mehrere Muster ersetzen möchten??

Es gibt verschiedene Möglichkeiten, dies zu tun. Wir können es innerhalb eines einzelnen SED -Befehls tun oder es in mehrere Einsen teilen.

Mehrere Ersetzungen in einem einzigen SED -Befehl
Wir können die mehreren Ausdrücke mit der -e -Flag an SED übergeben. Schauen Sie sich das folgende Beispiel an:

$ sed -e 's/the/hello/g' -e 's/faul/müde/' test.txt

Hier ersetzt der erste Ausdruck "das" durch "Hallo". Der zweite Ausdruck ersetzt "faul" durch "müde".

Anstatt mehrere Ausdrücke zu deklarieren, können wir sie auch zu einem einzigen Ausdruck kombinieren, wobei jeder Teil durch ein Semikolon getrennt ist (;). Schauen Sie sich das folgende Beispiel an:

$ sed -e 's/the/hello/g; s/faul/müde/' test.txt

Wenn Sie immer wieder dieselbe SED -Befehle ausführen, können wir sie in eine einzelne Datei platzieren. Wir können die Datei als Quelle von Befehlen an SED mit dem -F -Flag übergeben. Die Befehlsstruktur sieht ungefähr wie folgt aus:

$ sed -f

Lassen Sie es uns in die Tat umsetzen. Wir haben alle SED -Befehle zusammengestellt, die wir in den Dateibefehlen ausführen möchten.txt.

$ CAT -Befehle.txt

Beachten Sie, dass jeder einzigartige SED -Ausdruck in einer neuen Linie platziert wird, um die visuelle Klarheit zu verbessern. Sie können jedoch auch die Semikolon -Technik verwenden, um alle Ausdrücke in einen einzelnen Ausdruck zu verschmelzen.

Jetzt können wir diese Datei in SED als Ausdrucksliste angeben, die auf dem angegebenen Stream ausgeführt werden sollen:

$ sed -f Befehle.TXT -Test.txt

Mehrere SED -Ersatz mit mehreren SED -Befehlen
Dies ist ein einfacherer Ansatz. Anstatt einen ausgefallenen Trick zu verwenden, filtern wir den Stream mit einem SED -Befehl und übergeben die Ausgabe an die anderen SED -Befehle.

Schauen Sie sich das folgende Beispiel an:

$ sed 's/the/Hallo/g' Test.txt | sed 's/faul/müde/'

Hier ersetzt der erste SED -Befehl "das" durch "Hallo". Die Ausgabe wird dann auf den zweiten SED -Befehl geleitet, der "faul" durch "müde" ersetzt.

Obwohl diese Methode einfach ist, kann sie sehr leicht überflüssig werden, insbesondere wenn Sie mehrere SED -Ausdrücke ausführen müssen. In diesem Fall ist die Verwendung der SED -Befehlsdatei der effizienteste Weg.

Abschluss

In diesem Leitfaden haben wir die verschiedenen Möglichkeiten untersucht, wie wir die Mehrfachersatz mit SED ausführen können. Wir haben demonstriert. Wir haben die Mehrfachausdrücke mit den Semikolons weiter in einen einzelnen Ausdruck komprimiert. Für eine sich wiederholendere Workload haben wir auch die Verwendung einer Textdatei zum Ausführen der Mehrfachleitungsausdrücke gleichzeitig demonstriert.

Schließlich haben wir die Verwendung von SED auf einfache Weise untersucht: die Ausgabe eines SED -Befehls zu einem anderen übergeben.

In diesem Handbuch ändern die SED -Befehle den Inhalt der Datei nicht wirklich. Erfahren Sie mehr über die Verwendung von SED, um die Dateien an Ort zu bearbeiten.

Happy Computing!