SED Befehl zum Löschen von Zeilen in einer Datei

SED Befehl zum Löschen von Zeilen in einer Datei

In den meisten Fällen ist es wahrscheinlich, wenn Sie mit einer Textdatei arbeiten. Diese leeren Leerzeichen können von einigen Zeichen bis zu einer Reihe von Leitungen reichen, die leer sind oder keine Informationen haben. Wenn Sie solche Dateien mit unnötigen Räumen behalten, können Sie zeitaufwändig und unbequem sein. Es kann einige Gründe für die Aufbewahrung dieser Dateien geben, aber der beste Weg, um sie zu handhaben, besteht darin, die leeren Zeilen zu löschen. In diesem Artikel wird der Befehl UNIX SED und seine Verwendung beim Löschen leerer Zeilen in einer Datei untersucht.

Was ist sed?

SED steht für Stream Editor. Es ist ein nicht interaktiver Befehlszeileneditor. Es wird hauptsächlich zum Bearbeiten und Filtern von Dateien verwendet. SED wird am häufigsten beim Skript verwendet, wo es zum Bearbeiten einer einzelnen Datei oder mehrere Dateien nacheinander bearbeitet wird. SED kann verwendet werden, um eine Folge von Bearbeitungsaktionen in einer einzelnen Datei oder einer Gruppe von Dateien durchzuführen. Es kann verwendet werden, um Zeilen und Wörter in einer Datei zu löschen, Wörter zu ersetzen und sogar Text an bestimmten Stellen in einer Datei hinzuzufügen.

In diesem Tutorial erfahren Sie den Befehl Linux SED, um Zeilen aus einer Datei basierend auf Argumenten zu löschen. Denken Sie daran, dass der Standardbefehl keine Änderungen an der Originaldatei vornimmt. Wenn Sie Dateien in der gleichen Datei verwenden möchten, verwenden Sie '-i' Optionen mit Befehlen.

1. Löschen Sie die erste Zeile aus der Datei

Du kannst den ... benutzen '1d' Option zum Löschen der ersten Zeile aus der Datei. Zum Beispiel haben Sie eine CSV -Datei und möchten die Titelzeile entfernen. Verwenden Sie den folgenden Befehl, um die erste Zeile mit SED zu löschen.

sed '1d' File_name  

Hier '1' zur ersten Zeile und die darstellen 'D' wird zum Löschen verwendet. Also kombinieren '1d' Löscht die erste Zeile aus der Datei. Siehe das folgende Beispiel:

SED -Befehlsbeispiel, um die erste Zeile aus der Datei zu löschen

Sie können sehen, dass die "sed" Der Befehl hat die erste Zeile aus der Ausgabe gelöscht.

2. Löschen Sie die letzte Zeile aus der Datei

Verwenden Sie '$ D' Befehlspfandparameter mit SED, um die letzte Linie oder die Fußzeile von einer Geldstrafe zu löschen. Der folgende Befehl löscht die letzte Zeile aus dem Dateiname.CSV -Datei.

sed '$ d' File_name 

Im obigen Befehl "$" darstellen die letzte Zeile der Datei und 'D' ist diese Linie zu löschen.

SED -Befehlsbeispiel, um die letzte Zeile aus der Datei zu löschen

3. Löschen Sie eine bestimmte Zeile nach Nummer

Sie können die gefolgte Zeilennummer angeben 'D' um diese bestimmte Zeile zu löschen. Um die 5. Datei aus der Datei zu löschen, führen Sie aus:

sed '5d' File_Name.CSV  

4. Löschen Sie den Zeilenbereich

SED ermöglicht auch eine Reihe von Linien aus der Datei. Wir können die Startlinien- und Endzeilennummer mit einem getrennten Befehl angeben. Sehen wir uns das folgende Beispiel an:

sed '2,5d' File_name 

Der obige Befehl löscht die Zeilennummer von 2 bis 5 aus der angegebenen Datei.

5. Löschen Sie andere Zeilen als die erste Zeile

Verwenden Sie die Negation (!) Bediener mit D -Option im SED -Befehl. Der folgende SED -Befehl beseitigt alle Linien mit Ausnahme der Kopfzeile.

sed '1!D 'Datei_Name 

6. Löschen Sie andere Zeilen als die letzte Zeile

Verwenden Sie die Negation (!) Bediener mit D -Option im SED -Befehl. Der folgende SED -Befehl beseitigt alle Linien mit Ausnahme der Kopfzeile.

sed '$!D 'Datei_Name 

7. Löschen Sie andere Zeilen als den angegebenen Bereich

Verwenden Sie die Negation (!) Bediener mit D -Option im SED -Befehl. Der folgende SED -Befehl beseitigt alle Linien mit Ausnahme der Kopfzeile.

sed '2,5!D 'Datei_Name 

8. Löschen Sie die erste und die letzte Zeile

sed '1d; $ d' File_name 

9. Löschen Sie leere Zeilen oder leere Zeilen

Der SED -Befehl kann verwendet werden, um leere Zeilen in einer Textdatei zu löschen. Dazu können Sie den folgenden Befehl verwenden:

sed '/^$/d' Datei_Name  

Der obige Befehl löscht alle leeren Zeilen aus der angegebenen Datei. Jede Linie enthält einen einzelnen Raum wird nicht als einzelne Linie angesehen.

10. Löschen Sie Zeilen, die mit dem angegebenen Zeichen beginnen

sed '/^t/d' Zahlen.CSV 

11. Löschen Sie Zeilen, die mit dem angegebenen Zeichen enden

sed '/t $/d' Zahlen.CSV 

12. Löschen Sie Linien, die ein Muster enthalten

sed '/muster/d' Zahlen.CSV 

Abschluss

Vor der weiteren Verarbeitung müssen die Textdateien immer gereinigt werden, da möglicherweise unerwünschte Zeichen wie Registerkarte, Newline, Space usw. enthalten sind. SED bietet eine Reihe von Möglichkeiten zum Löschen von Zeilen, Wörtern oder sogar Zeichen aus einer Datei. Setzen Sie einfach die gewünschte Operation in die Eingabeaufforderung ein, und Sie sind fertig!