将window下的文本文件上传到linux上,在读取数据文件时,在每一行数据后会出现^M字符。
为什么会出现这种情况呢:
因为windows、linux、os系统的换行符标准不同:
先了解下概念,回车:用“
”表示,ASCII码中的“代码”为CR,意义是将光标移到当前行的首位;换行:用“
”表示,ASCII码中的“代码”为LF,意义是将光标移到下一行。
(1) DOS/Windows系统采用CRLF(回车+换行)表示下一行,即“
”;
(2) Linux/UNIX系统采用LF表示下一行,即“
”;
(3) MAC系统采用CR表示下一行,即“
”;
怎么解决:
vim中出现^M怎么解决:$ sed -i 's/^M/
/g' myfile.txt //注意:这里的“^M”要使用“CTRL-V CTRL-M”生成,而不是直接键入“^M”
另外,在Notepad++中,通过点击菜单中Edit->EOL Conversion选择不同的转换格式可以更改文本的换行符