Prueba esto:
awk 'NR==1{sub(/^\xef\xbb\xbf/,"")}{print}' INFILE > OUTFILE
En el primer registro (línea), elimine los caracteres BOM. Imprime todos los registros.
O un poco más corto, sabiendo que la acción predeterminada en awk es imprimir el registro:
awk 'NR==1{sub(/^\xef\xbb\xbf/,"")}1' INFILE > OUTFILE
1
es la condición más corta que siempre se evalúa como verdadera, por lo que se imprime cada registro.
¡Disfrutar!
- ADENDA -
Las preguntas frecuentes sobre la marca de orden de bytes (BOM) Unicode incluyen la siguiente tabla que enumera los bytes de BOM exactos para cada codificación:
Bytes | Encoding Form
--------------------------------------
00 00 FE FF | UTF-32, big-endian
FF FE 00 00 | UTF-32, little-endian
FE FF | UTF-16, big-endian
FF FE | UTF-16, little-endian
EF BB BF | UTF-8
Por lo tanto, puede ver cómo \xef\xbb\xbf
corresponde a los EF BB BF
UTF-8
bytes de la lista de materiales en la tabla anterior.