今天項目聯調的時候出現配置文件無法正確讀取的問題,但是cat配置文件的值都對,糾結了好久最後使用開發板上的vi打開配置文件,發現配置文件每行的結尾多出來好多^M.後來上網查明了原因以及解決方案。
在 Linux 中使用打開曾在 Windows 中編輯過的文件時,會在行尾看到 ^M 字符。這個原因是由於Linux的回車換行是/n LF ($) 這個斷行符號。而Windows下為/r/n 即CR 與 LF 兩個符號。 這個^M 即是Windows下轉為Linux下多出來的那個/r符號,Linux會將這個/r自動轉換為^M. 使用Windows打開Linux下的文本文件即會出現這種情況,使用Windows下的ssh對開發板上的文件進行下載和上傳有時也會出現同樣的問題
解決方法如下:
在 Vim或Vi下的命令模式中輸入 :%s/^M$//g 後,回車即會自動刪除該文件中文件結尾的 ^M 字符。
(注意:其中的 ^M 要用 Ctrl + v然後Ctrl + m 來輸入而不是單純的輸入^M),M 後面的 $ 代表匹配行尾的內容,最後的 g 則表示每行中匹配到的內容都要置換。