在windows下编辑的文件,放到linux下执行经常会出现各种莫名其妙的问题,用vim打开查看文件,会看到一些特殊字符,常见的有
1. ^M
该字符出现在一行文本的结尾,出现的原因是windows使用CR(回车\r)LF(换行\t)两个字符来作为一行文本的结束符号,而linux下是使用LF单个字符作为单行文本结束,因此在windows下编辑过的文本中如果使用过回车来换行,在linux下就会出现^M字符,可以用如下命令来消除:
sed -i 's/\r//g' fileName
-i 表示在原始文件中直接修改,重定向则可以用:
sed 's/\r//g' oldFileName > newFileName
2. BOM
该字符是由于在windows下编辑的文件,采用utf作为编码格式保存时,编辑器会在文件开头添加一个BOM标记(Byte Order Mark)来标识utf编码所采用的字节序,使用如下命令可以看到文件头的BOM字符:
cat fileName | head -1 | sed -n l
转载自:https://blog.csdn.net/weeniebear/article/details/19405441