Wie entferne ich Linien aus einer Datei mit dem SED -Befehl

Wie entferne ich Linien aus einer Datei mit dem SED -Befehl
Der SED -Befehl ist als Stream -Editor bekannt. Der SED -Befehl wird unter Linux verwendet, um eine grundlegende Texttransformation durchzuführen.

Einer der vielen wesentlichen Befehle von Linux ist auch der SED -Befehl, der eine wichtige Rolle bei der Dateimanipulation spielt. Es wird für viele Zwecke verwendet; Einige der wichtigsten sind wie folgt.

Entfernen oder löschen Sie diese bestimmte Zeile, die den angegebenen Mustern entspricht.

  • Linien mit regelmäßigen Ausdrücken entfernen.
  • Basierend auf der Position einer Datei löschen Sie eine bestimmte Zeile.

Wenn Sie also darüber nachdenken, Linien aus einer Datei mit dem SED -Befehl zu entfernen, lesen Sie bitte unseren Artikel von Anfang bis Ende. Wir geben Ihnen einen kurzen Überblick über die Methoden zum Entfernen von Linien

Wie entferne ich Linien aus einer Datei mit dem SED -Befehl?

Wir werden den SED -Befehl ohne -I in diesem Artikel verwenden, weil es sich um einen Demonstrationsartikel handelt. Eine ähnliche Methode ist die Option „Trockenlauf“, die alle Werte für die Datei anzeigt, ohne Änderungen vorzunehmen.

Mit dem SED -Befehl können wir die Linien je nach Umgebung mit -I entfernen.

Um den Befehl SED anzuzeigen, erstellen wir eine Datei namens LinuxHintos.txt. Um bessere Informationen bereitzustellen, fügen wir diese Zeilennummern in den folgenden Inhalt auf.

Entfernen von Zeilen aus einer Datei basierend auf Position

Dieser Teil erklärt die Verwendung des SED -Befehls, um Linien aus einer Datei zu entfernen. 'LinuxHintos.Txt 'basierend auf seiner Position.

Öffnen Sie zunächst die Datei mit dem folgenden Befehl:

Katze ~//

Führen Sie nun den folgenden Befehl aus, um die erste Zeile zu löschen:

sed 'nd' Datei

Im obigen Befehl:

N- "N -te" Zeile in einer Datei

D- Löschen der Datei

Lassen Sie uns diesen Befehl also in unser Beispiel ausführen, um die 10. Zeile aus der Textdatei zu löschen:

CD -Dokumente
sed '10d' LinuxHintos.txt

Entfernen Sie die letzte Zeile aus einer Datei

Wenn wir die letzte Zeile aus der Datei entfernen müssen, anstelle von 'n' in der oben verwendeten Syntax, werden wir $ verwenden.'Hier repräsentiert $ die letzte Zeile.

sed '$ d' Datei

Danach ändert sich unsere Datei in so etwas.

Entfernen Sie die erste Zeile und die letzte Linie gemeinsam

Wenn wir die ersten und letzten Zeilen entfernen wollen, müssen wir die beiden oben genannten Befehle kombinieren.

sed 'nd; $ d' Dateiname

Mit diesem Befehl werden sowohl unsere ersten als auch unsere letzten Zeilen gleichzeitig aus der Datei entfernt.

Wie Sie im obigen Bild sehen können, wurde die erste und letzte Zeile aus der Textdatei entfernt.

Entfernen Sie eine Reihe von Linien

Der SED -Befehl kann die Linien eines beliebigen Bereichs entfernen. Dafür müssen wir nur "Minimum" und "maximale" Zeilenzahlen eingeben.

In diesem Beispiel entfernen wir die Zeilen von 4 bis 7 Zahlen.

sed '4,7d' Datei

Nachdem wir diese Zeilenbereiche entfernt haben, sieht unsere Datei so aus.

Mehrere Zeilen entfernen

SED kann auch mehrere Linien in einem Satz entfernen. Wie Sie sehen können, haben wir in diesem Beispiel den dritten, sechsten, achten und letzten Zeilen entfernt.

sed '3d; 6d; 8d; $ d' Datei

Bei der oben geschriebenen Anwendung des SED -Befehls finden sich die folgenden Änderungen in unserer Datei 'LinuxHintos auf.txt'.

Entfernen von anderen Zeilen als der angegebenen Linie oder dem angegebenen Zeilenbereich

Durch den SED -Befehl entfernen wir diese Zeilen aus den Dateien, die im Befehl nicht definiert sind.e., Die anderen als die beschriebenen Linien werden entfernt.

Aus dieser Datei werden wir die verbleibenden Zeilen von den Nummern 4 bis 7 abheben.

Sed '4,7! D 'Datei

Hier drüben das Zeichen von “!„Gibt an, dass wir die Zeile dieser spezifischen Nummer nicht aus der Datei entfernen sollten.

! - Wird verwendet, um die spezifische Anzahl von Zeilen aus der Datei zu halten

Danach sieht unsere Datei ungefähr so ​​aus:

Entfernen Sie die leeren oder leeren Linien

Der unten geschriebene SED -Befehl entzieht leere oder leere Zeilen aus der entsprechenden Datei.

sed '/^$/d' Datei

Da in unserer Datei keine leeren oder leeren Zeilen enthalten sind, sind keine Änderungen eingetreten:

Entfernen Sie Zeilen aus der Datei basierend auf dem Muster

Im zweiten Teil werden wir sehen, dass mit Hilfe des SED -Befehls wir Linien eines ähnlichen Musters entfernen.

Zeilen entfernen, die ein Muster enthalten

Im Beispiel entfernt der folgende Befehl die Zeilen, die dem "System" -Mustern aus der Datei 'LinuxHintos übereinstimmen.txt'.

sed '/system/d' Datei

Wir müssen also die Zeilen entfernen, die „nicht verfügbar“ sind. Deshalb werden wir den folgenden Befehl ausführen:

sed '/nicht verfügbar/d' LinuxHintos.txt

Entfernen von Linien, die einen oder mehrere Saiten enthalten

Durch den SED -Befehl können wir die Zeilen entfernen, die mit dem Muster "Nicht aktualisiert" oder "nicht verfügbar" aus der Datei "LinuxHintos" übereinstimmen.Txt 'und dieser Befehl ist so etwas:

sed '/nicht aktualisiert \ | nicht verfügbar/d' LinuxHintos.txt

Entfernen von Linien, die mit einem bestimmten Charakter beginnen

Wir können alle Linien entfernen, die mit jedem Zeichen durch den SED -Befehl beginnen. Wir haben eine neue Datei namens 'LinuxHintos erstellt.TXT 'mit dem folgenden Inhalt:

Der folgende SED -Befehl entfernen alle Linien, die mit dem 'A' Charakter beginnen.

sed '/^a/d' Datei

Wir werden solche Zeilen aus unserer Datei entfernen, die mit 'a' und 'l' beginnen. Für das wir den folgenden Befehl verwenden werden.

sed '/^[al]/d' Datei

Mit SED entfernen wir alle Linien, die mit „A“ beginnen und mit der Zeichenfolge „Linux“ enden, und enden mit der Zeichenfolge "Linux".

sed '/^(a).*(Linux)/D 'Datei

Entfernen von Zeilen, die mit einem bestimmten Zeichen enden

Dieser SED -Befehl beseitigt alle Linien, die mit „M enden.”

sed '/m $/d' Datei

Der folgende SED -Befehl entfernen Linien, die sowohl mit "m" als auch mit 'x' enden.

sed '/[xm] $/d' Datei

Die Zeichenzeilen, die mit 'M' und 'x' enden, werden aus unserer Datei entfernt. Dann sieht unsere Datei so aus.

Entfernen Sie alle Linien, die mit Großbuchstaben beginnen

Wir werden alle diese Zeilen mit dem folgenden Befehl aus der Datei entfernen: einen Großbuchstaben.

sed '/^[a-z]/d' Datei

Nachdem der obige Befehl angewendet wurde, werden alle Zeilen unserer Datei, die mit Großbuchstaben gestartet wurden.

Entfernen einer passenden Musterlinie mit einem bestimmten Bereich

Mit Hilfe des folgenden Befehls entfernen wir nur diese Zeilen aus einigen definierten Zeilen mit einem bestimmten Muster.

In diesem Beispiel wird nur Zeilen mit Linux -Mustern aus der Datei zwischen 1 und 6 Zeilen entfernt.

sed '1,6 /linux/d; Datei

Nach dem Antrag des Befehls unsere Datei 'SED - Demo -1.Txt 'wird ungefähr so ​​aussehen.

Wir werden die zweite Zeile nur mit dem folgenden SED -Befehl löschen, wenn sie das Muster „OpenSuse“ enthält.

sed '2 /openSuse/d;' Datei

Der entsprechende Befehl entfernen die zweite Zeile aus unserer Datei 'SED - Demo -1.txt 'da es ein spezifisches Muster von „OpenSuse hat.”

Der entsprechende Befehl entfernen die zweite Zeile aus unserer Datei 'SED - Demo -1.txt 'da es ein spezifisches Muster von „OpenSuse hat.”

Wir können auch die Zeilenleitungen löschen, die dem 'System' -Muster und der folgenden Zeile in der Datei über den Befehl SED entspricht.

sed '/system/n; d;' Datei

Entfernen Sie die Linien mit spezifischen Muster

Mit dem SED -Befehl können Sie alle Linien nach dem Muster „CentOS“ entfernen.

sed '/centos/, $ d' Datei

Entfernen von Zeilen, die Zahlen/Ziffern enthalten

Mit dem unten geschriebenen SED.''

sed '/[0-9]/d' Datei

Indem wir einige Änderungen im SED -Befehl vornehmen, werden wir alle diese Zeilen aus der Datei entfernen, die nur mit Ziffern beginnen.

sed '/^[0-9]/d' Datei

Nach diesem Befehl werden alle Zeilen, die mit Ziffern beginnen.

Wenn wir im Befehl einige Änderungen vornehmen, entfernen wir nur diese Zeilen aus der Datei, die mit einer Ziffer endet.

sed '/[0-9] $/d' Datei

Entfernen von Zeilen, die alphabetische Zeichen aus einer Datei enthalten

Mit dem SED -Befehl löschen wir alle Zeilen aus der Datei 'LinuxHintos.txt, 'die alphabetische Zeichen enthalten.

sed '/[a-za-z]/d' Datei

Abschluss

Dieser Artikel zeigt mehrere Beispiele für das Entfernen von Zeilen aus einer Datei mit dem SED -Befehl. Wir sehen, wie wir mit Hilfe des SED -Befehls leicht alle Zeilen aus Dateien entfernen können. Wenn wir uns an diese Befehle erinnern, sparen wir viel Zeit und reduzieren.