现象: 在用VI 编辑文件时发现文本文件每行末尾都有一个“^M”符号,这样在数据处理或者 Shell脚本运行时发生错误。
原因: 编辑器在处理回车符方法不同造成的。文本数据在DOS下编辑后,以二进制方式FTP传到Linux 或着Unix下用VI打开就会出现上述现象。
处理方法:
用VI编辑器中的查找替换命令,将“^M”替换为空格符,具体操作如下:
VI编辑器转换命令模式 Shift + : 输入 g//^M/s//^M// 或者 %s/^M//g,回车就可以了。
备注:
那么,这句命令到底是什么意思呢?% 指匹配整个文件,s 是置换的意思,^M 注意要用 Ctrl + V Ctrl + M 来输入,M 后面的 $ 代表匹配行尾的内容,最后的 g 则表示每行中匹配到的内容都要置换。理解了命令的含义,就好变通使用了,比如说,要将某个文件中的 Vim 全部替换成 VIM,则可以使用这样的命令::%s/Vim/VIM/g。 |