首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dos2unix不转换^M

dos2unix不转换^M
EN

Stack Overflow用户
提问于 2014-05-23 11:54:40
回答 4查看 12.1K关注 0票数 17

我从运行在Windows 7上的程序导出了文本文件的结果,并在Xubuntu14.04上复制了该文件。在一个终端中,我运行dos2unix file.txt,它告诉我converting file out_mapqtl.txt to Unix format。但是,当我查看带有less的文件时,我仍然看到Windows为^M,而wc -l返回我的"0“。

我尝试了几个描述here的东西,但都没有用。然后,我用Vim打开了文件,并按照解释的:%s/\r/\r/g做了there,它工作得很好。那么,你知道为什么dos2unix不起作用吗?有没有办法避免每次都打开Vim?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-05-23 11:59:49

\r表示回车,而在MAC上,它被使用而不使用\n来表示换行。您确定文件是DOS (\r\n)格式而不是MAC (\r)格式吗?

如果VIM确实是修复您的文件的唯一方法,您还可以按以下方式调用它:

vim somefile.txt +"%s/\r/\r/g" +wq

这将打开文件,执行操作,保存文件,然后退出。

你能给我们举个文件的例子吗?这样我们就可以进一步调查了吗?

票数 14
EN

Stack Overflow用户

发布于 2017-03-21 16:07:28

我知道你已经解决了这个问题,但我想在我所做的一些测试的基础上添加一个备注,以供参考。

如果显示^M的次数较少,那么就像Sybren一样,我怀疑它是MAC样式的结尾(\r),而不是DOS (\r\n)。您可以很容易地使用cat:

$ cat -e文件名

  • Unix结尾(\n)显示为$
  • MAC结尾(\r)显示为^M (较少显示这些)
  • DOS\Windows结尾(\r\n)显示为^M$ (较少显示不显示这些)

使用dos2unix消除DOS (^M$)结尾

使用mac2unix来消除MAC (^M)结尾-- dos2unix不会去掉这些。

我有一个文件,我必须使用dos2unix和mac2unix来消除所有的非Unix结尾。

票数 18
EN

Stack Overflow用户

发布于 2014-05-23 12:00:20

试试这个:

代码语言:javascript
复制
tr -d '\r' < file
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23828554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档