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