Ho più file che contengono informazioni di testo ascii nelle prime 5-10 righe, seguite da informazioni sulla matrice ben tabulate. In uno script di shell, voglio rimuovere queste prime righe di testo in modo da poter utilizzare le informazioni della matrice pura in un altro programma. Come posso usare i comandi della shell bash per farlo?
Se può essere di aiuto, sto usando RedHat e un sistema Ubuntu Linux.
Risposta accettata:
Finché il file non è un collegamento simbolico o un hardlink, puoi usare sed, tail o awk. Esempio sotto.
$ cat t.txt
12
34
56
78
90
sed
$ sed -e '1,3d' < t.txt
78
90
Puoi anche usare sed sul posto senza un file temporaneo:sed -i -e 1,3d yourfile
. Questo non farà eco a nulla, modificherà solo il file sul posto. Se non è necessario reindirizzare il risultato a un altro comando, è più semplice.
coda
$ tail -n +4 t.txt
78
90
ok
$ awk 'NR > 3 { print }' < t.txt
78
90