shell 去除utf8文件中bom头的方法
本文介绍使用shell命令,批量去除utf8文件中bom头的方法。utf8的bom头由xEF,xBB,xBF组成,带bom的文件在使用过程中,某些软件打开会出现乱码等异常,而要把文件重新另存为utf8无bom比较麻烦,因此直接使用shell命令实现比较方便。 1.去除utf8文件中bom头首先创建一个utf8带bom头的文件,随便插入些内容,例如test.txt 使用命令xxd查看此文件的16进制编码 xxd test.txt
00000000: efbb bfe6 b58b e8af 95e6 9687 e4bb b60a ................
可以看到头三个字节的16进制为 xEF xBB xBF sed -i 's/^xEFxBBxBF//g' test.txt
上面命令表示,把xEFxBBxBF开头的字符替换为空。 执行完成后再使用xxd命令查看文件16进制编码 xxd test.txt
00000000: e6b5 8be8 af95 e696 87e4 bbb6 0a .............
可以看到utf8 bom头被去除。 2.批量去除文件夹中utf8文件中的bom头我们可以使用grep来查看哪些文件存在bom头,然后对这些文件执行替换。 grep -r -i -l $'^xEFxBBxBF' . | xargs sed -i 's/^xEFxBBxBF//g'
-r 在当前目录及其子目录下搜索 grep -i -l $'^xEFxBBxBF' * | xargs sed -i 's/^xEFxBBxBF//g'
安装gnu-sed brew install gnu-sed
设置默认路径 export PATH中加入/usr/local/opt/gnu-sed/libexec/gnubin:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |