„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:
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,
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!