So verwenden Sie SED, um die Datei vor Ort zu bearbeiten

So verwenden Sie SED, um die Datei vor Ort zu bearbeiten

Linux unterstützt verschiedene Arten von Befehlszeilen -Versorgungsunternehmen, um die Aufgaben zu automatisieren, die Linux in der führenden Betriebssendung herstellen. Aufgrund seiner Bedeutung und Verwendung hat es Hunderte von Verteilungen, die auf Linux basieren, und unterstützen zahlreiche Befehle, um Aktionen automatisch auszuführen.

Für Ubuntu steht ein riesiger Pool von Befehlen zur Verfügung, und das Versorgungsunternehmen von SED ist einer von ihnen. Der SED -Befehl kann verwendet werden, um grundlegende Vorgänge in Textdateien wie Bearbeiten und Löschen von Text in eine Datei auszuführen.

Neben diesen primären Aktionen bietet SED eine lange Liste unterstützter Optionen, mit denen die Ausgabe gemäß den von diesem Benutzer inspirierten Benutzeranforderungen manipuliert werden kann. Wir haben einen Leitfaden zusammengestellt, der demonstriert, um die Änderungen in der Originaldatei mithilfe von SED zu behalten:

So bearbeiten Sie die Datei mit dem SED -Befehl vor

Diese Option des SED -Befehls wird verwendet, um die Datei zu bearbeiten und die Änderungen am ursprünglichen zu speichern und kann mit allen Operationen des SED -Befehls verwendet werden:

Die Syntax für diese Option wird unten beschrieben:

Syntax

SED -I -Befehl [Dateiname]

oder

SED-in Place-Befehl [Dateiname]

In der oben angegebenen Syntax ist die Option "-i" konstant (wenn Sie in Dateiänderungen vornehmen) und das Schlüsselwort "Befehl" enthält die Operationen (Substitution, Löschung, Anhang), die mit dem SED-Befehl ausgeführt werden. Und schließlich leitet der „Dateiname“ zum Namen der Datei, in der alle Aktionen ergriffen werden, die mit dem SED -Befehl zugeordnet sind.

Wir haben eine Textdatei aufgenommen, die nur wenige Textzeilen enthält:

Lassen Sie uns den Inhalt von "extrahieren"Examp.txtDatei mit dem unten genannten Befehl:

$ cat Examp.txt

Beginnen wir mit der grundlegenden Nutzung, wenn wir SED ohne verwenden “-ichOption ”Dann würde sie das Ergebnis auf dem Terminal drucken und die Originaldatei wird unverändert (wie mit dem Befehl„ CAT “überprüft), wie unten gezeigt:

Differenz zwischen der vorhandenen Datei bearbeiten und Dateibearbeitung des SED -Befehls bearbeiten

Im folgenden Befehl; “S"Wird zur Substitution verwendet und das Wort ersetzt"Debian" mit "Ubuntu”. Außerdem der Brief “G”Am Ende dieses Befehls steht für globale Aktionen, was bedeutet, dass der Ersatz in der gesamten Datei durchgeführt wird:

$ seds/debian/ubuntu/g 'Examp.txt

Und verwenden Sie jetzt den gleichen Befehl mit “-ichOption wie unten angegeben; Es wird bemerkt, dass mit Hilfe von “-ich"Der Inhalt in der Originaldatei ("Examp.txt”) Wird jetzt auch geändert, wie unten angezeigt:

Notiz: Sie können verwenden “-an Ort und Stelle" anstatt "-ich”; Beide Optionen haben die gleiche Funktionalität:

$ sed -i 's/debian/ubuntu/g' Examp.txt

So bearbeiten Sie eine bestimmte Dateizeile mit dem SED -Befehl vor

Und wenn Sie den Inhalt einer bestimmten Zeilennummer ändern möchten, können Sie den numerischen Wert mit S -Buchstaben hinzufügen. Der unten angegebene Befehl ersetzt beispielsweise "Ubuntu" durch "Debian" nur in der Zeile -Nummer "2" und sobald Sie die Zeilennummer angegeben haben, ist der Zweck des "G" -Briefs annulliert, sodass Sie sie auch entfernen können:

$ sed -i '2S/Ubuntu/Debian/' Examp.txt

Darüber hinaus können Sie platzieren “$”Zeichen mit“SSchlüsselwort, um nur die Änderungen in der letzten Zeile der Datei auszuführen; Wie der unten geschriebene Befehl wird das Wort platzieren “Ubuntu" anstelle von "Linux-Mint”Auf der letzten Zeile von“Examp.txt”:

$ sed -i '$ S/Ubuntu/Linux -Mint/' Examp.txt

So löschen

Die optimale Option hat eine umfassende Verwendung im SED-Befehl, wie oben erläutert. Abgesehen vom Ersetzen von Wörtern in einer Zeile kann man die gesamte Zeile löschen und die Ausgabe in der übergeordneten Datei mit “speichern-ichOption: Der unten erwähnte Befehl löscht die Zeilennummer “2”Der Datei“ Examp.txt":

$ sed -i '2d' Examp.txt

Und wenn Sie die Zeilen außer Zeilennummer löschen möchten “2Dann müssen Sie den Befehl wie unten erwähnt schreiben:

$ sed -i '2!D 'Examp.txt

Abschluss

Ubuntu unterstützt eine Vielzahl von Befehlen, mit denen die primären Vorgänge auf Textdateien wie Kopf oder Heckbefehle ausgeführt werden können, um die zum Start oder am Ende einer Textdatei verfügbaren Zeilen zu drucken. Es gibt jedoch einige Einschränkungen. Nehmen wir an, Sie können nicht nur Zeilennummer 2 einer Textdatei mit dem Head -Befehl drucken (obwohl die Zeilennummer 2 im Kopfabschnitt der Datei erhältlich ist). Der SED -Befehl führt diesbezüglich andere Befehle an; Dieser Befehl in Ubuntu hilft dabei, grundlegende Vorgänge in Textdateien wie Substitution, Zusatz, Löschen usw. durchzuführen. Es wird beobachtet, dass, wenn der SED-Befehl verwendet wird, mit Ausnahme der Option „-i“, das Ergebnis nur auf dem Terminal gedruckt wird. In diesem Artikel wird die In-Place-Option des SED-Befehls ausführlich beschrieben und kann mit allen SED-Operationen übernommen werden. Um einen tiefen Einblick in diese Option zu erhalten, haben wir versucht, sie mit so vielen Befehlen zu verwenden, um Grundlagen für Anfänger zu erstellen.