Ho un file che assomiglia a questo esempio di giocattolo. Il mio file attuale ha 4 milioni di righe, di cui circa 10 devo eliminare.
ID Data1 Data2
1 100 100
2 100 200
3 200 100
ID Data1 Data2
4 100 100
ID Data1 Data2
5 200 200
Voglio eliminare le righe che assomigliano all'intestazione, ad eccezione della prima riga.
File finale:
ID Data1 Data2
1 100 100
2 100 200
3 200 100
4 100 100
5 200 200
Come posso farlo?
Risposta accettata:
header=$(head -n 1 input)
(printf "%sn" "$header";
grep -vFxe "$header" input
) > output
- prendere la riga di intestazione dal file di input in una variabile
- stampa l'intestazione
- elabora il file con
grep
per omettere le righe che corrispondono all'intestazione - cattura l'output dei due passaggi precedenti nel file di output