Tengo un archivo que se parece a este ejemplo de juguete. Mi archivo actual tiene 4 millones de líneas, de las cuales debo eliminar unas 10.
ID Data1 Data2
1 100 100
2 100 200
3 200 100
ID Data1 Data2
4 100 100
ID Data1 Data2
5 200 200
Quiero eliminar las líneas que se parecen al encabezado, excepto la primera línea.
Archivo final:
ID Data1 Data2
1 100 100
2 100 200
3 200 100
4 100 100
5 200 200
¿Cómo puedo hacer esto?
Respuesta aceptada:
header=$(head -n 1 input)
(printf "%sn" "$header";
grep -vFxe "$header" input
) > output
- tomar la línea de encabezado del archivo de entrada en una variable
- imprimir el encabezado
- procesar el archivo con
grep
para omitir líneas que coincidan con el encabezado - capture el resultado de los dos pasos anteriores en el archivo de salida