¿Cómo puedo eliminar varios encabezados de un archivo? Traté de usar el siguiente código después de encontrarlo en ¿Cómo puedo eliminar líneas duplicadas en un archivo en Unix? .
awk '!x[$0]++' file.txtEstá eliminando todos los registros duplicados en el archivo. Pero en mi caso, solo necesito que se eliminen los duplicados del encabezado, no los registros duplicados en el archivo. Por ejemplo, tengo un archivo con los siguientes datos:
column1, column2, column3, column4, column5 value11, value12, value13, value14, value14 value21, value22, value23, value24, value25 value31, value32, value33, value34, value35 value41, value42, value43, value44, value45 value51, value52, value53, value54, value55 value21, value22, value23, value24, value25 column1, column2, column3, column4, column5 value11, value12, value13, value14, value14 value21, value22, value23, value24, value25 column1, column2, column3, column4, column5 column1, column2, column3, column4, column5Estoy esperando la salida de la siguiente manera:
column1, column2, column3, column4, column5 value11, value12, value13, value14, value14 value21, value22, value23, value24, value25 value31, value32, value33, value34, value35 value41, value42, value43, value44, value45 value51, value52, value53, value54, value55 value21, value22, value23, value24, value25 value11, value12, value13, value14, value14 value21, value22, value23, value24, value25Si sabe que la primera línea contiene el encabezado, simplemente elimine todas las demás instancias de eso.
awk 'FNR==1 { header = $0; print } $0 != header' file Si eso no funciona, díganos cómo podemos identificar una línea de encabezado. Si es solo una cadena estática, grep -vF 'that string' o si coincide con una expresión regular en particular, grep -v 'that regex' .
Esto podría funcionar para usted (GNU sed):
sed -r '1h;1!G;/^(.*)\n\1/d;P;D' file