vim下如何去掉windows编辑的文件中的^M-阿里云开发者社区

开发者社区> 开发与运维> 正文

vim下如何去掉windows编辑的文件中的^M

简介: 可以去掉^M, 例如: 在终端下敲命令: dos2unix a.c 直接转换成unix格式,这样就可以去掉^M    •$dos2unix filename •vim filename :%s/^M$//g ^M = Ctrl+v+m   著作权归作者所有。

可以去掉^M,

例如:

在终端下敲命令:
dos2unix a.c
直接转换成unix格式,这样就可以去掉^M 

 

•$dos2unix filename
•vim filename

:%s/^M$//g

^M = Ctrl+v+m

 

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:小幕
链接:http://www.zhihu.com/question/22130727/answer/33814375
来源:知乎

基于 DOS/Windows 的文本文件在每一行末尾有一个 CR(回车)和 LF(换行),而 UNIX 文本只有一个换行,即win每行结尾为\r\n,而linux只有一个\n
如果win下的文档上传到linux,每行的结尾都会出现一个^M,(^M是ctrl+v,ctrl+m)
如果是单个文档的话,可以用vi打开,执行 :%s/^M//g 来去掉^M,
但如里批量去除的话就不能用vi了,

方法1: 用dos2unix工具,
把win文档转换成linux下文档
命令:
find ./ -type f -print0 | xargs -0 dos2unix

如果想把linux下的文档转换成win下的:
find ./ -type f -print0 | xargs -0 unix2dos

方法2: 用sed命令
把win文档转换成linux下文档:
find ./ -type f print0 | xargs -0 sed -i 's/^M$//'


把linux下的文档转换成win下的
fild ./ -type f print0 | xargs -0 sed -i 's/$/^M/'
【作者】张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章