出于调试目的,我需要递归搜索一个目录下以UTF-8字节顺序标记(BOM)开头的所有文件。 我当前的解决方案是一个简单的shell脚本:
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
该功能不能处理包含换行符的文件名,但是这样的文件通常不会出现。
是否有更短或更优雅的解决方案?
是否有任何有趣的文本编辑器或文本编辑器宏?
grep -rlI $'\xEF\xBB\xBF' .
来忽略二进制文件。 - dbernard