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