Для целей отладки мне нужно рекурсивно искать каталог для всех файлов, начинающихся с знака порядка байтов UTF-8 (BOM). Мое текущее решение - это простая оболочка script:
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
Он не работает с именами файлов, которые содержат разрыв строки, но таких файлов не следует ожидать в любом случае.
Есть ли более короткое или более элегантное решение?
Есть ли интересные текстовые редакторы или макросы для текстовых редакторов?