如何消除文件中的回车(carriage return,^M)

如何消除文件中的回车(carriage return,^M)

大家知道如果将dos系统中 的文件转移到linux系统中,在文件的每一行的末尾都会有一个^M(Ctrl-M)。这个字符代表回车。在dos中,换行是由字符序列\r\n来表示的,其中\r是回车符,\n才是换行符。在linux系统中,换行仅仅由\n表示。当一个在dos系统上创建的文件在linux系统中查看的时,其中的\r就回被显示为^M。可以像下面这样用tr命令来删除这些^M:
[code:1]tr -d '\015' < file > newfile[/code:1]
file是包含回车的文件,newfile是file文件中的回车被删除后的文件。这里使用八进制的\015来代表回车,这是因为转义序列\r在有些版本的tr中不能被正确的解释。
好使
在vim中
:%s/\r//g
或者
:%s/<C-V><C-M>//g

在命令行中
dos2unix filename