GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So entfernen Sie Zeilen aus einer Datei mit dem Sed-Befehl

Streaming-Editor (sed ) ist ein wichtiges Werkzeug, wenn Sie mit dem Analysieren und Transformieren von Text in Ihren Nix-basierten Systemen arbeiten. Es wird zum Suchen, Filtern, Ersetzen von Text und Textmanipulationen wie Einfügen, Löschen, Ersetzen und Suchen in Textdateien verwendet.

[ Das könnte Ihnen auch gefallen:So verwenden Sie Sed zum Suchen und Ersetzen von Zeichenfolgen in Dateien ]

In den meisten Linux-Distributionen ist der Befehl sed vorinstalliert und Sie können ihn mit den folgenden Befehlen überprüfen, die den binären Speicherort des Befehls und die Version anzeigen.

$ which sed
$ sed --version

Hier in diesem Artikel zeige ich Ihnen anhand einer Beispieldatei, die 7 Zeilen enthält, wie Sie mit dem Befehl sed Zeilen aus einer Datei entfernen. Ich werde diese Datei zu Demonstrationszwecken verwenden.

$ cat testfile.txt

First line
second line
Third line
Fourth line
Fifth line
Sixth line
SIXTH LINE

So löschen Sie eine Zeile aus einer Datei

Um die Zeile aus einer Datei zu löschen, können Sie den folgenden Befehl verwenden. Sie müssen 'N' ersetzen mit der Zeilennummer und 'd' ist die Zeile zu löschen.

$ sed 'Nd' testfile.txt

Wenn Sie die vierte Zeile aus der Datei löschen müssen, müssen Sie N=4 ersetzen .

$ sed '4d' testfile.txt

So löschen Sie die erste und letzte Zeile aus einer Datei

Sie können die erste Zeile aus einer Datei löschen, indem Sie die gleiche Syntax wie im vorherigen Beispiel verwenden. Sie müssen N=1 setzen wodurch die erste Zeile entfernt wird.

$ sed '1d' testfile.txt

Um die letzte Zeile aus einer Datei zu löschen, verwenden Sie den folgenden Befehl mit ($) Zeichen, das die letzte Zeile einer Datei bezeichnet.

$ sed '$d' testfile.txt

So löschen Sie einen Zeilenbereich aus einer Datei

Sie können eine Reihe von Zeilen aus einer Datei löschen. Nehmen wir an, Sie möchten die Zeilen 3 bis 5 löschen, Sie können die folgende Syntax verwenden.

  • M – Startzeilennummer
  • N – Endzeilennummer
$ sed 'M,Nd' testfile.txt

Um tatsächlich zu löschen, verwenden Sie dazu den folgenden Befehl.

$ sed '3,5d' testfile.txt

Sie können ! verwenden Symbol, um den Löschvorgang zu negieren. Dadurch werden alle Zeilen außer dem angegebenen Bereich (3-5) gelöscht.

$ sed '3,5!d' testfile.txt

So entfernen Sie Leerzeilen aus einer Datei

Führen Sie den folgenden Befehl aus, um alle leeren Zeilen aus einer Datei zu löschen. Ein wichtiger Punkt, der zu beachten ist, ist die Verwendung dieses Befehls, leere Zeilen mit Leerzeichen werden nicht gelöscht. Ich habe meiner Testdatei Leerzeilen und Leerzeilen mit Leerzeichen hinzugefügt.

$ cat testfile.txt

First line
second line
Third line
Fourth line
Fifth line
Sixth line
SIXTH LINE
$ sed '/^$/d' testfile.txt

Aus dem obigen Bild können Sie sehen, dass leere Zeilen gelöscht werden, aber Zeilen mit Leerzeichen werden nicht gelöscht. Um alle Zeilen einschließlich Leerzeichen zu löschen, können Sie den folgenden Befehl ausführen.

$ sed '/^[[:space:]]*$/d' testfile.txt

[Das könnte Ihnen auch gefallen:So löschen Sie leere Zeilen in Dateien mit Grep, Sed und Awk ]

So löschen Sie Zeilen, die mit Wörtern in einer Datei beginnen

Um eine Zeile zu löschen, die mit einem bestimmten Wort beginnt, führen Sie den folgenden Befehl mit ^ aus Das Symbol stellt den Anfang des Wortes dar, gefolgt vom eigentlichen Wort.

$ sed '/^First/d' testfile.txt

Führen Sie den folgenden Befehl aus, um eine Zeile zu löschen, die mit einem bestimmten Wort endet. Das zu löschende Wort gefolgt von $ Symbol löscht Zeilen.

$ sed '/LINE$/d' testfile.txt

So nehmen Sie Änderungen direkt in einer Datei vor

Um die Änderungen direkt in der Datei mit sed vorzunehmen Sie müssen -i übergeben Flag, das die Änderungen direkt in der Datei vornimmt.

$ sed -i '/^[[:space:]]*$/d' testfile.txt 

Wir sind am Ende des Artikels angelangt. Der sed Der Befehl spielt eine wichtige Rolle, wenn Sie an der Bearbeitung von Dateien arbeiten. In Kombination mit anderen Linux-Dienstprogrammen wie awk , grep Sie können mit sed noch mehr Dinge tun .


Linux
  1. So extrahieren Sie die tar.gz-Datei in Linux mithilfe der Befehlszeile

  2. So entfernen Sie Benutzer in Linux über die Befehlszeile

  3. Verwenden von Google Drive über die Linux-Befehlszeile

  4. Effizient die ersten paar Zeilen aus einer Textdatei entfernen?

  5. Löschen bestimmter Zeilen aus einer Datei in der Linux-Befehlszeile

So erstellen Sie eine Datei in Linux mit Terminal/Befehlszeile

So entfernen Sie Dateien und Verzeichnisse mit der Linux-Befehlszeile

So senden Sie eine E-Mail mit Dateianhang von der Befehlszeile aus

So zeigen Sie bestimmte Zeilen einer Datei in der Linux-Befehlszeile an

Wie lade ich eine Datei per FTP von der Befehlszeile hoch?

Wie erhalte ich die URL der Dropbox-Datei von der Befehlszeile?