您好,登錄后才能下訂單哦!
產生問題的原因:
在linux下,不可避免的會用VIM打開一些windows下編輯過的文本文件。我們會發現文件的每行結尾都會有一個^M符號,這是因為 DOS下的編輯器和Linux編輯器對文件行末的回車符處理不一致,對于回車符的定義:
windows:0D0A
unix\linux: 0A
MAC: 0D
DOS, Mac 和Unix格式的文件回想計算機的史前史,那時的打字機使用兩個字符來開始一個新行。首先是一個字符命令使打印頭移回開始位置(回車,<CR>),然后另一個字符命令控制向前進紙一行(進紙,<LF>).在計算機誕生之初,存儲設備十分昂貴。于是有人就提出沒有必要用兩個字符來表示一行的結束。UNIX一族決定只用進紙一個字符<Line Feed>來表示行尾。來自蘋果陣營的人則把回車<CR>作為換行的標準。MS-DOS(和微軟的Windows)仍然決定沿用古老的回車換行<CR><LF>傳統。這也意味著如果把文件從一個系統移到另一個不同的系統,你就會遇到與換行相關的問題。Vim編輯器則可以識別這些不同格式的文件。
解決方法:
在命令模式下使用正則表達式進行字符全文空替換:
:%s/^M//g
其中"^M"的輸入,分別是“Ctrl+v”、“Ctrl+M”鍵生成的。像^M 這樣的在VIM中是控制字符,在查找替換中輸入控制字符必須用別的方法,那就是在輸入^M時,必須依次在鍵盤上敲入Ctrl+V和Ctrl+M。
2. 使用sed 工具
$ sed -e 's/\x0D//g' mydebug.c > temp_mydebug.c23
3. 最簡單的使用dos2unix工具
$ sudo apt-get install dos2unix $ dos2unix README.txt
參考文檔:
如何解決VIM中打開文件里有的^M
vim打開文件有^M結尾
在Vim中查找替換控制字符
關于linux中使用vim打開文件出現^M的解決方法
Linux命令dos2unix簡析
dos2unix 下載
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。