GNU/Linux >> Linux Esercitazione >  >> Linux

Come eliminare le prime N righe di un file Ascii utilizzando i comandi della shell?

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

Linux
  1. Come scorrere le righe di un file?

  2. Stampa un file, saltando le prime X righe, in Bash

  3. Come posso randomizzare le righe in un file utilizzando strumenti standard su Red Hat Linux?

  4. Come inserire un testo all'inizio di un file?

  5. Come rimuovere i caratteri non ascii usando sed

Come rimuovere le righe da un file usando il comando Sed

Come eliminare le righe vuote nei file utilizzando Grep, Sed e Awk

Esercitazione Unix Sed:Elimina le righe di file utilizzando l'indirizzo e i modelli

Tutorial Unix Sed:come scrivere su un file usando Sed

Come eliminare il testo selezionato nell'editor vi

Come inserisco il testo nella prima riga di un file usando sed?