问题现象:
在用VI 编辑文件时发现文本文件每行末尾都有一个“^M”符号,这样在数据处理或者Shell脚本运行时发生错误。
产生"^M"原因:
编辑器在处理回车符方法不同造成的。文本数据在DOS下编辑后,以二进制方式FTP传到Linux 或着Unix下用VI打开就会出现上述现象。
处理方法:
用VI编辑器中的查找替换命令,将“^M”替换为空格符,具体操作如下:
VI编辑器转换命令模式 Shift + : 输入 g//^M/s//^M// 或者 %s/^M//g,回车就可以了。
cat filename |tr -d '/015' >newfile
不同的unix系统还存在一些其他不同的命令,如:doscp
sed 也可以实现这个功能.
dos2unix filename filename2
反之
unix2dos filename filename2
在vi 中用:$s/^M//g
^是crtl-V crtl-M
在用VI 编辑文件时发现文本文件每行末尾都有一个“^M”符号,这样在数据处理或者Shell脚本运行时发生错误。
产生"^M"原因:
编辑器在处理回车符方法不同造成的。文本数据在DOS下编辑后,以二进制方式FTP传到Linux 或着Unix下用VI打开就会出现上述现象。
处理方法:
用VI编辑器中的查找替换命令,将“^M”替换为空格符,具体操作如下:
VI编辑器转换命令模式 Shift + : 输入 g//^M/s//^M// 或者 %s/^M//g,回车就可以了。
cat filename |tr -d '/015' >newfile
不同的unix系统还存在一些其他不同的命令,如:doscp
sed 也可以实现这个功能.
dos2unix filename filename2
反之
unix2dos filename filename2
在vi 中用:$s/^M//g
^是crtl-V crtl-M