В целях отладки мне нужно рекурсивно искать в каталоге все файлы, которые начинаются с отметки порядка байтов (BOM) UTF-8. Мое текущее решение - это простой сценарий оболочки:
find -type f |
while read file
do
if [ "`head -c 3 -- "$file"`" == $'\xef\xbb\xbf' ]
then
echo "found BOM in: $file"
fi
done
Или, если вы предпочитаете короткие, нечитаемые однострочные строки:
find -type f|while read file;do [ "`head -c3 -- "$file"`" == $'\xef\xbb\xbf' ] && echo "found BOM in: $file";done
Это не работает с именами файлов, которые содержат разрыв строки, но таких файлов в любом случае ожидать не следует.
Есть ли более короткое или элегантное решение?
Есть ли какие-нибудь интересные текстовые редакторы или макросы для текстовых редакторов?