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

Wie lösche ich die ersten N Zeilen einer ASCII-Datei mit Shell-Befehlen?

Ich habe mehrere Dateien, die ASCII-Textinformationen in den ersten 5-10 Zeilen enthalten, gefolgt von gut tabellierten Matrixinformationen. In einem Shell-Skript möchte ich diese ersten Textzeilen entfernen, damit ich die reinen Matrixinformationen in einem anderen Programm verwenden kann. Wie kann ich dazu Bash-Shell-Befehle verwenden?

Falls es Ihnen weiterhilft, ich verwende RedHat und ein Ubuntu-Linux-System.

Akzeptierte Antwort:

Solange die Datei kein Symlink oder Hardlink ist, können Sie sed, tail oder awk verwenden. Beispiel unten.

$ cat t.txt
12
34
56
78
90

gesendet

$ sed -e '1,3d' < t.txt
78
90

Sie können sed auch direkt ohne eine temporäre Datei verwenden:sed -i -e 1,3d yourfile . Dies wird nichts wiedergeben, es wird nur die Datei an Ort und Stelle ändern. Wenn Sie das Ergebnis nicht an einen anderen Befehl weiterleiten müssen, ist dies einfacher.

Schwanz

$ tail -n +4 t.txt
78
90

awk

$ awk 'NR > 3 { print }' < t.txt
78
90

Linux
  1. Wie lösche ich die ersten/letzten 'n' Zeilen aus der Befehlsausgabe in der Shell?

  2. So löschen Sie alle Zeilen einer Datei in Vim

  3. Drucken Sie eine Datei, wobei Sie die ersten X-Zeilen in Bash überspringen

  4. Wie kann ich die Zeilen in einer Datei mit Standardwerkzeugen unter Red Hat Linux zufällig anordnen?

  5. Wie füge ich einen Text am Anfang einer Datei ein?

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

So löschen Sie leere Zeilen in Dateien mit Grep, Sed und Awk

Unix Sed Tutorial:Löschen Sie Dateizeilen mit Adresse und Mustern

Unix Sed Tutorial:So schreiben Sie mit Sed in eine Datei

So löschen Sie ausgewählten Text im vi-Editor

Löschen Sie leere Zeilen mit sed