將window下的文本文件上傳到linux上,在讀取數據文件時,在每一行數據后會出現^M字符。
為什么會出現這種情況呢:
因為windows、linux、os系統的換行符標准不同:
先了解下概念,
回車:用“\r”表示,ASCII碼中的“代碼”為CR,意義是將光標移到當前行的首位;
換行:用“\n”表示,ASCII碼中的“代碼”為LF,意義是將光標移到下一行。
(1) DOS/Windows系統采用CRLF(回車+換行)表示下一行,即“\r\n”;
(2) Linux/UNIX系統采用LF表示下一行,即“\n”;
(3) MAC系統采用CR表示下一行,即“\r”;
怎么解決:
vim中出現^M怎么解決:$ sed -i 's/^M/\n/g' myfile.txt //注意:這里的“^M”要使用“CTRL-V CTRL-M”生成,而不是直接鍵入“^M”
另外,在Notepad++中,通過點擊菜單中Edit->EOL Conversion選擇不同的轉換格式可以更改文本的換行符