À des fins de débogage, je dois rechercher de manière récursive dans un répertoire tous les fichiers commençant par une marque d'ordre d'octet (BOM) UTF-8. Ma solution actuelle est un simple script shell:
find -type f |
while read file
do
if [ "`head -c 3 -- "$file"`" == $'\xef\xbb\xbf' ]
then
echo "found BOM in: $file"
fi
done
Ou, si vous préférez des one-liners courts et illisibles:
find -type f|while read file;do [ "`head -c3 -- "$file"`" == $'\xef\xbb\xbf' ] && echo "found BOM in: $file";done
Cela ne fonctionne pas avec les noms de fichiers contenant un saut de ligne, mais de tels fichiers ne sont pas attendus de toute façon.
Existe-t-il une solution plus courte ou plus élégante?
Existe-t-il des éditeurs de texte intéressants ou des macros pour les éditeurs de texte?