Methode 1: So löschen Sie alle leeren Zeilen in einer Textdatei mit SED
Bevor Sie sich in die Tiefe dieser Methode graben, verstehen wir die Syntax, um leere Linien mit SED zu löschen:
Syntax
SED [Optionen] '/^$/d' [Dateiname]
Der '/^$/d'ist der Kernteil dieses Befehls; Wo "^Das Symbol zeigt, dass die Löschung von den Anfangsmitteln von der ersten Zeile aus ausgeführt werden muss. “$”Stellt dar, dass es bis zur letzten Zeile der Textdatei gehen muss und“DZeigt, dass die Löschung im Gange ist.
In diesem Abschnitt werden Sie mithilfe von Stream Editor (SED) alle Zeilen in einer Textdatei löschen:
Wir haben eine Textdatei erstellt “löschen.txt; Holen Sie sich zunächst den Inhalt dieser Datei mit “Katze"Befehl wie unten angegeben und wir haben verwendet"-NOption damit, damit wir auch die Zeilennummern erhalten:
Es wird beobachtet, dass es mehrere leere Zeilen gibt und sie die Ästhetik dieser Textdatei beeinflussen, und die Leser sind möglicherweise nicht auf solche Inhalte achten.
$ cat -n löschen.txt
Um die oben genannte Situation zu vermeiden; Sie müssen die leeren Zeilen entfernen, um den Lesevorgang zu optimieren. Der unten erwähnte Befehl entfernen alle diese Zeilen aus dem “löschen.txt" Datei.
Jetzt können Sie feststellen, dass die leeren Linien ausgewaschen werden und nur diese Zeilen gedruckt werden, die einen Text enthalten, aber das Ergebnis wird nur am Terminal angezeigt, während die Originaldatei gleich bleibt:
$ sed '/^$/d' löschen.txt
Wenn Sie die leeren Zeilen entfernen und auch die Originaldatei aktualisieren möchten, müssen Sie die Option "In-Place" verwenden-ichUnd der unten erwähnte Befehl hilft Ihnen dabei:
$ sed -i '/^$/d' löschen.txt
Methode 2: So löschen Sie ausgewählte leere Zeilen in einer Textdatei mit SED
Die Syntax zum Löschen bestimmter Zeilen in einer Textdatei ist unten geschrieben:
Syntax
SED [Optionen] '(Zeilennummer) D' [Dateiname]
Der Hauptteil der Syntax, auf die sich der Befehl verlässt(Zeilennummer) D '”; Sie müssen die genaue Zeilennummer der leeren Linie einfügen “(Zeilennummer)"Und der Brief"D”Zeigt an, dass die eingefügte Zeilennummer gelöscht wird:
Sie können einige bestimmte Zeilen in einer Textdatei mit SED -Befehl löschen. Wir haben eine neue Textdatei erstellt “neu.txt”Für diesen Abschnitt. Zum Beispiel zeigt die Ausgabe des folgenden Befehls diese Zeilennummer “2" ist leer:
$ cat -n neufile.txt
Und wenn Sie den Befehl ausführen möchten, um diese Zeile nur zu löschen, müssen Sie die Zeilennummer angeben, wie wir es in dem unten genannten Befehl getan haben:
$ sed '2d' Neufile.txt
Sie können aufeinanderfolgende Linien auch mit dieser Methode löschen. Zum Beispiel die “neu.txt"Datei hat 3 leere Zeilen"4,5,6”Wie im Bild unten zu sehen ist:
$ cat -n neu.txt
Um diese drei aufeinanderfolgenden Linien zu entfernen; Sie müssen einfügen “,”Zwischen den Start- und Endzeilennummern, wie im folgenden Befehl zu sehen ist:
$ sed '4,6d' neu.txt
Schließlich können Sie auch Option an Ort und Stelle verwenden “-ich„Um die Änderungen dauerhaft in der Datei zu speichern, wie ohne diese Option, druckt der SED das Ergebnis auf dem Terminal, da wir den obigen Befehl geändert haben, um es zu verwenden, um es zu verwenden.“-ich" Möglichkeit:
$ sed -i '4,6d' neu.txt
Abschluss
Ubuntu unterstützt mehrere Möglichkeiten, die Daten in einer Textdatei zu manipulieren. Zum Beispiel können Sie den Standardtext -Editor von Ubuntu, den Nano Editor usw., verwenden. Das SED -Befehlszeilen -Dienstprogramm von Ubuntu führt jedoch alle diese Redakteure an. In diesem Artikel haben wir SED -Befehl verwendet, um die leeren Zeilen aus der Textdatei zu entfernen, und zwei Methoden für diesen Vorgang beschrieben. “Methode 1”Ist speziell geeignet, wenn Sie Hunderte von Zeilen in einer Textdatei haben und alle leeren Zeilen gleichzeitig löschen möchten: andererseits“, “Methode 2”Ist geeignet, um die leeren Zeilen in einem kleinen Dokument zu löschen, in dem Sie die Zeilen nacheinander löschen können. Sie müssen jedoch selbst nach leeren Linien suchen, wenn Sie folgen möchten “Methode 2”: Wenn der Vergleich zwischen beiden Methoden gezogen wird“, “Methode 1"Übertrifft"Methode 2”Über Löschen leerer Linien.