utf8的BOM问题,以及unix和window下回车的差别
utf8的BOM问题:
在批量将文件转码为unicode时,utf8 BOM文件头会多出\ufeff,是 因为BOM文件首部多一个不可见的字符。这个不可见字符可以通过vim -b filename 来查看到。转成unicode时就被顺便转换为了 unicode编码。转换结束后需要将这个\ufeff去掉。
sed -i 's/^\\ufeff//'${filename}
https://gist.github.com/2425762
vim文件中的^M的问题:
有 时脚本编辑文件后会多出^M之类的字符,^M其实就是回车符号导致的,windows下的文本文件中行尾为回车+换行(0A0D),unix中的文本行尾 只需一个换行(0D)即可,当winodws下的文件在unix中打开时,0A(回车)就被显示了出来,显示为控制字符,可以通过脚本去掉:
sed -i 's/^M//g'${filename}
需要注意,^M必须通过键盘打出来,Ctrl+v+M
https://gist.github.com/2425966
浙公网安备 33010602011771号