歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> vi下刪除替換文本中的^M符號

vi下刪除替換文本中的^M符號

日期:2017/2/27 16:03:47   编辑:Linux教程
很久以前,老式的電傳打字機使用兩個字符來另起新行。一個字符把滑動架移回首位(稱為回車,ASCII碼為0D),另一個字符把紙上移一行 (稱為換行,ASCII碼為0A)。當計算機問世以後,存儲器曾經非常昂貴。有些人就認定沒必要用兩個字符來表示行尾。UNIX開發者決定他們可以用一個字符來表示行尾,Linux沿襲Unix。開發MS-DOS以及Windows則決定沿用老式的。
三種行尾格式如下:
unix : \n
dos : \r\n
mac : \r
這意味著,如果你試圖把一個文件從一種系統移到另一種系統,那麼你就有換行符方面的麻煩。

因為MS-DOS及Windows是回車+換行來表示換行,因此在Linux下用Vim查看在Windows下寫的代碼,行尾後"^M"符號。如何才能去掉這些符號呢。除了可以借助外部工具如dos2unix,tr,sed,awk之外,vi本身也提供一些解決方案:
方案一:
:set ff=unix #to unix file
:set ff=dos #to windows file

方案二:
vim +"set ff=unix" +wq $DOS_FILE

方案三:
:%s/<Ctrl-v><Ctrl-m>//g
或者
:%s/<Ctrl-v>Enter//g
注意:
上述命令行中的"^M"符,不是"^"再加上"M",而是由"Ctrl+v"、"Ctrl+M"鍵生成的,或者Ctrl+v,再按回車。

或者使用這個命令:
:%s/\r//g
Copyright © Linux教程網 All Rights Reserved