SED an Ort und Stelle bearbeiten Datei bearbeiten

SED an Ort und Stelle bearbeiten Datei bearbeiten

„Im UNIX/Linux -Ökosystem ist der SED -Befehl ein spezielles Werkzeug zum Bearbeiten von Streams, daher der Name (Stream -Editor). Es empfängt Texteingaben als „Streams“ und führt die angegebenen Operationen im Stream aus.”

In diesem Handbuch werden wir die Durchführung der Einführung von In-Place-Dateien mit SED untersuchen.

Voraussetzungen

Um die in diesem Handbuch gezeigten Schritte auszuführen, benötigen Sie die folgenden Komponenten:

    • Jede moderne Unix/Linux -Distribution. Für diesen Leitfaden werde ich Ubuntu 20 verwenden.04 LTs auf VirtualBox ausführen.
    • Ein geeigneter Terminalemulator, vorzugsweise mit Syntax -Hervorhebung. Schauen Sie sich einige der besten Terminal -Emulatoren unter Linux an.

Bearbeitungsstrom mit SED

Lassen Sie uns zunächst einen kurzen Blick darauf werfen, wie SED funktioniert. Die Befehlsstruktur von SED lautet wie folgt:

$ sed


Der folgende Befehl zeigt einen einfachen Workflow von SED:

$ echo "The Quick Brown Fox" | sed -e 's/schnell/schnell/'



Hier,

    • Der Befehl echo druckt die Zeichenfolge auf Stdout. Erfahren Sie mehr über Stdin, Stdout und Stderr.
    • Wir verleihen die Ausgabe an die sed Hier, Stdout ist der Stream sed Das wird die angegebene Aufgabe ausführen.
    • Der sed Der Befehl wie angegeben sucht nach einer Instanz des Wortes schnell und ersetzen Sie es durch schnell. Der resultierende Strom wird auf der Konsole gedruckt.

Was ist, wenn wir die Texte einer Textdatei ändern wollten? Der SED -Befehl kann auch mit Textdateien als Stream funktionieren. Zur Demonstration habe ich die folgende Textdatei gepackt:

$ Cat Demo.txt



Der folgende SED -Befehl ersetzt alle Fälle von Die mit da:

$ sed -e 's/the/da/g' Demo.txt



Überprüfen Sie den Inhalt von Demo.txt für Änderungen:

$ Cat Demo.txt



Aus dem letzten Beispiel können wir sehen, dass SED nur den resultierenden Strom auf der Konsole gedruckt hat. Die Quelldatei (Demo.txt) war nicht berührt.

Bearbeiten von Dateien an Ort und Stelle mit SED

Wie aus dem vorherigen Beispiel gezeigt, besteht die Standardaktion von SED darin, den geänderten Inhalt auf dem Bildschirm zu drucken. Dies ist eine großartige Funktion, die zufällige Änderungen an Dateien verhindern kann. Wenn wir jedoch die Änderungen an der Datei speichern wollten, mussten wir einige zusätzliche Optionen bereitstellen.

Eine einfache und gemeinsame Technik würde darin bestehen, den Inhalt der Datei durch die Datei zu ersetzen sed Ausgang. Schauen Sie sich den folgenden Befehl an:

$ Cat Demo.txt | sed 's/the/da/g' | Tee Demo.txt



Hier überschreiben wir den Inhalt von Demo.txt mit der Ausgabe von der sed Befehl.

Während die Befehlsfunktionen wie beabsichtigt sind, müssen zusätzliche Codes eingegeben werden. Wir haben die Cat- und Tee -Befehle zusammen mit dem SED -Befehl beteiligt. Bash ist auch an der Umleitung der Ausgänge beteiligt. Somit ist der Befehl ressourcenintensiver als er sein muss.

Um dies zu lösen, können wir die Einstellungsfunktion von SED verwenden. In diesem Modus, sed Ändern Sie den Inhalt der Datei direkt. Um den Bearbeitungsmodus in Ort zu rufen, müssen wir die verwenden -ich oder -an Ort und Stelle Flagge. Die folgende sed Befehl implementiert es:

$ sed -in place -e 's/the/da/g' Demo.txt



Überprüfen Demo.txt für Änderungen:

$ Cat Demo.txt



Wie Sie sehen können, werden die Dateiinhalte geändert, ohne zusätzliche Komponenten hinzuzufügen.

Abschließende Gedanken

In diesem Handbuch haben wir erfolgreich nachgewiesen sed. Während SED selbst ein einfaches Programm ist, liegt die Hauptquelle der Macht in seiner Fähigkeit, reguläre Ausdrücke einzubeziehen. Regex ermöglicht die Beschreibung von sehr komplexen Mustern, auf die SED wirkt. Schauen Sie sich Regex in SED an, um eingehender zu erfahren.

Alternativ können Sie Bash -Skripte verwenden, um den Inhalt einer Datei zu filtern und zu ändern. Tatsächlich können Sie SED in Ihre Skripte einbeziehen, um Textinhalte zu feinstimmen. Schauen Sie sich diesen Leitfaden zum Einstieg mit Bash Scripting an.

Happy Computing!