Попробуйте это:
awk 'NR==1{sub(/^\xef\xbb\xbf/,"")}{print}' INFILE > OUTFILE
На первой записи (строке) удалите символы спецификации. Распечатайте каждую запись.
Или немного короче, используя знание о том, что действие по умолчанию в awk должно печатать запись:
awk 'NR==1{sub(/^\xef\xbb\xbf/,"")}1' INFILE > OUTFILE
1
- это самое короткое условие, которое всегда оценивает
- ADDENDUM -
Частота юникодного байта (BOM) FAQ
g0] включает следующую таблицу, в которой перечислены точные байты спецификации для каждой кодировки:
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
Таким образом, вы можете видеть, как \xef\xbb\xbf
соответствует байтам спецификации EF BB BF
UTF-8
из приведенной выше таблицы.