有些内容从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

附加参考:用vim编辑文件时,去掉其中的^M

在 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 系统的