溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

解決VIM中打開文件里有的^M字符 & Linux命令dos2unix

發(fā)布時間:2020-07-20 21:38:04 來源:網(wǎng)絡 閱讀:5485 作者:xjhznick 欄目:系統(tǒng)運維
  • 產(chǎn)生問題的原因:

    在linux下,不可避免的會用VIM打開一些windows下編輯過的文本文件。我們會發(fā)現(xiàn)文件的每行結尾都會有一個^M符號,這是因為 DOS下的編輯器和Linux編輯器對文件行末的回車符處理不一致,對于回車符的定義:

      windows:0D0A
      unix\linux: 0A
      MAC: 0D

    DOS, Mac 和Unix格式的文件回想計算機的史前史,那時的打字機使用兩個字符來開始一個新行。首先是一個字符命令使打印頭移回開始位置(回車,<CR>),然后另一個字符命令控制向前進紙一行(進紙,<LF>).在計算機誕生之初,存儲設備十分昂貴。于是有人就提出沒有必要用兩個字符來表示一行的結束。UNIX一族決定只用進紙一個字符<Line Feed>來表示行尾。來自蘋果陣營的人則把回車<CR>作為換行的標準。MS-DOS(和微軟的Windows)仍然決定沿用古老的回車換行<CR><LF>傳統(tǒng)。這也意味著如果把文件從一個系統(tǒng)移到另一個不同的系統(tǒng),你就會遇到與換行相關的問題。Vim編輯器則可以識別這些不同格式的文件。
  • 解決方法:

  1. 在命令模式下使用正則表達式進行字符全文空替換:


:%s/^M//g

其中"^M"的輸入,分別是“Ctrl+v”、“Ctrl+M”鍵生成的。像^M 這樣的在VIM中是控制字符,在查找替換中輸入控制字符必須用別的方法,那就是在輸入^M時,必須依次在鍵盤上敲入Ctrl+VCtrl+M。

解決VIM中打開文件里有的^M字符 & Linux命令dos2unix

2.  使用sed 工具

$ sed -e 's/\x0D//g' mydebug.c > temp_mydebug.c23

3.  最簡單的使用dos2unix工具

$ sudo apt-get install dos2unix
$ dos2unix README.txt

解決VIM中打開文件里有的^M字符 & Linux命令dos2unix

參考文檔:

如何解決VIM中打開文件里有的^M

vim打開文件有^M結尾

在Vim中查找替換控制字符

關于linux中使用vim打開文件出現(xiàn)^M的解決方法


Linux命令dos2unix簡析

dos2unix 下載

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI