Para fins de depuração, preciso pesquisar recursivamente em um diretório todos os arquivos que começam com uma marca de ordem de bytes (BOM) UTF-8. Minha solução atual é um script de shell simples:
find -type f |
while read file
do
if [ "`head -c 3 -- "$file"`" == $'\xef\xbb\xbf' ]
then
echo "found BOM in: $file"
fi
done
Ou, se você preferir linhas curtas e ilegíveis:
find -type f|while read file;do [ "`head -c3 -- "$file"`" == $'\xef\xbb\xbf' ] && echo "found BOM in: $file";done
Não funciona com nomes de arquivo que contenham uma quebra de linha, mas de qualquer maneira esses arquivos não são esperados.
Existe alguma solução mais curta ou mais elegante?
Existem editores de texto ou macros interessantes para editores de texto?