dos2unix不会转换^ M.

tfl*_*tre 13 vim dos2unix

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

我试过这里描述的几件事,但都没有用.然后我在Vim中打开文件并:%s/\r/\r/g按照那里的说明进行操作,效果很好.所以任何想法为什么dos2unix不起作用?有没有办法避免每次都打开Vim?

dr.*_*ren 11

\r表示回车符,在MAC \n上表示不表示换行符.你确定文件是DOS(\r\n)格式而不是MAC(\r)吗?

如果VIM真的是唯一能够修复文件的东西,你也可以调用它:

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

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

你能给我们一个文件的例子,以便我们进一步调查吗?


em_*_*_bo 11

我知道你已经解决了这个问题,但我想根据我所做的一些测试添加一个注释供参考.

如果less显示^ M,那么就像Sybren一样,我怀疑它是MAC风格的结尾(\ r),而不是DOS(\ r \n).您可以轻松地使用cat来确定:

$ cat -e filename

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

使用dos2unix摆脱DOS(^ M $)结尾

使用mac2unix摆脱MAC(^ M)结尾 - dos2unix将不会摆脱这些.

我有一个文件,我必须使用dos2unix和mac2unix摆脱所有非Unix结尾.