巧妙的方法:在 UTF-8 文件中定位 BOM
在目录中搜索带有字节顺序的 UTF-8 文件的必要性标记 (BOM) 的出现是为了调试目的。虽然 shell 脚本提供了一种简单的解决方案,但它们可能会遇到一些缺陷,例如不可读的单行或对文件名中的换行符敏感。
精致的解决方案
寻求更多优雅的方法,考虑这个简洁的命令:
find . -type f -exec sed '1s/^\xEF\xBB\xBF//' -i {} \;
此命令利用“查找”实用程序来遍历指定的目录。然后过滤“f”类型的文件(常规文件)。对于每个合格的文件,都会调用“sed”编辑器,在第一行执行替换。字符串 ^xEFxBBxBF 以表示行开始的控制序列开始,并匹配构成 BOM 的三个字符:EF BB BF。通过将其替换为空字符串,可以有效地删除 BOM。
注意事项
请用户注意此操作具有破坏性。包含这些字符的二进制文件将被修改。为了防止意外更改,请改用此命令:
grep -rl $'\xEF\xBB\xBF' .
此修改后的命令仍然忠实于 'grep 的模式匹配使命。它保留了识别包含 BOM 的文件而不造成损害的能力。
以上是如何查找并删除 UTF-8 文件中的字节顺序标记 (BOM)?的详细内容。更多信息请关注PHP中文网其他相关文章!