linux下使用vim替換文件中的^M換行符


在linux下打開windows編輯過的文本,會出現由於換行符不一致而導致的內容格式錯亂的問題。最常見的就是出現^M 。

我出現的問題是:在windows編輯過的文件,傳到linux上后再用vim打開,內容沒有換行。也就是所有文件內容都在一行。然后再實際換行的位置多了個^M。

下面的方法是網上搜的。其中dos2unix還有一個相對應的unix2dos

1.使用dos2unix命令。一般的分發版本中都帶有這個小工具(如果沒有可以根據下面的連接去下載),使用起來很方便:
$ dos2unix myfile.txt
上面的命令會去掉行尾的^M。
 
2.使用vi的替換功能。啟動vi,進入命令模式,輸入以下命令:
:%s/^M$//g # 去掉行尾的^M。
:%s/^M//g # 去掉所有的^M。
:%s/^M/[ctrl-v]+[enter]/g # 將^M替換成回車。(我是用這個方法調好的)
:%s/^M/\r/g # 將^M替換成回車。
 
3.使用sed命令。和vi的用法相似:
$ sed -e ‘s/^M/\n/g’ myfile.txt
注意:這里的“^M”要使用“CTRL-V CTRL-M”生成,而不是直接鍵入“^M”。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM