最近在测试中发现,linux系统中导出的文件,有记事本打开另存为或者保存后,再次导入进linux系统,发现失败了,对比文件内容,没发现区别,打开二进制文件对比发现,文件头部多了三个字符:EF BB BF。
通过网络查找答案知,windows记事本等采用utf8 BOM格式,而Linux下采用UTF-8无BOM格式,上述三个字符即BOM。
去掉BOM方法:
1. # cat INFILE | sed 's/\xef\xbb\xbf//g' > OUTFILE ; sed -i 's/^\xEF\xBB\xBF//g' test.txt //直接修改
2. # awk '{if(NR==1)sub(/^\xef\xbb\xbf/,"");print}' INFILE > OUTFILE
3.# tail --bytes=+4 INFILE > OUTFILE ##没有判断标示