1. 程式人生 > >刪除windows換行符^M

刪除windows換行符^M

有些內容從windows下拷貝到unix下後,發現文字檔案中多了^M(在vim中檢視),那麼如何刪除這個字元呢。

在網上找了下答案,有好幾種方法,但是我試了下,只有一種是成功的,那就是”tr -d "\015" <myfile.txt > myfile_new.txt“,而且其中的“<>"是不能少的。

還有一種就是:dos2unix test.txt

注意:語句中的^M是通過ctrl+V, ctrl+M輸入的。特指/r字元

======================================================================================

From: http://hi.baidu.com/fairysky/blog/item/a79eb73ed504b8fd828b131b.html

在 Dos/Windows 裡,文字檔案的換行符為 \r\n ,而在*nix系統裡則為\n,所以DOS/Windows 裡編輯過的文字檔案到了 *nix 裡,每一行都多了個 ^M 。刪掉該字元可以在VI 裡用下面的方法試試

1、 :% s/\r//g

2、 :% s/^M//g
注意 ^M 的輸入用 Ctrl+v,再按回車,或者是Ctrl+v, Ctrl+m。

ps:我的情況是,從網路上下載的某些原始碼,如java的程式碼,用vim開啟,就會出現許多的 ^M ,

用上文介紹的 方法1“ :%s/\r//g”可以去掉這些 ^M 符號,

第2種方法貌似在windows 上不好使(在 windows 上 ctrl+v 是“貼上”命令,ctrl+m在命令列上是換行命令),在 vim 中不能輸入“ ^M ” 符號,所以該方法失效,估計該方法是用於 Linux 或者Unix 系統的