转:在linux中vi 文件里行尾奇怪的^M及解决

Posted feiyun8616的作坊 (半个程序员and dba)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转:在linux中vi 文件里行尾奇怪的^M及解决相关的知识,希望对你有一定的参考价值。

Linux编辑器vim中删除行尾的^M

  有时候,在 Linux 中使用打开曾在 Windows 中编辑过的文件时,会在行尾看到 ^M 字符。看起来总是感觉很别扭。

  删除方法如下:

  在 Vim 的命令模式中输入 :%s/^M$//g 后,回车即会自动删除该文件中的所有 ^M 字符。

  注意: ^M 要用 Ctrl + v, Ctrl + m 来输入, 用键盘直接敲^和M是不行的! 后面的 $ 代表匹配行尾的内容,最后的 g 则表示每行中匹配到的内容都要置换--全局替换,否则只替换每行中匹配到的第一个。

  又脚本删除方法:

  cat file | col -b > file.1 // 这个可以去掉,但是生成文件里汉字变乱码

  sed -e ‘s/.$//g‘ file // 正确

  sed ‘s/^M//‘ file // 正确,但是 ^M = Ctrl + v, Ctrl + m

  附录:^M 另一个会出现的情况是文件在 windows 和 Linux 系统间通过 Ftp 传送。这是建议方法是:强行设定 ftp 方式为 ascii 方式就可以了啊! 当然也可以通过软件 dos2unix 搞定。// 我没尝试过哈

以上是关于转:在linux中vi 文件里行尾奇怪的^M及解决的主要内容,如果未能解决你的问题,请参考以下文章

linux中怎样删除文件大小是9.1M的

解决windows文件迁移到linux后行尾有^M的问题

linux文件编码转换及Windows上创建的文件转为Linux格式

[转]linux下终端常用命令和vi命令修改文件及保存的使用方法

利用cat命令显示文本内容时,要在Linux每行的行尾显示$符号,该命令应带有啥?

Linux常用的几个vi小命令