我将结果导出到Windows 7上运行的程序的文本文件中,并将文件复制到Xubuntu 14.04上。在终端中,我运行dos2unix file.txt
,告诉我converting file out_mapqtl.txt to Unix format
。但是,当我使用less
查看文件时,我仍然将Windows结尾视为^ M,wc -l
返回我" 0"。
我尝试了here描述的几件事,但都没有效果。然后我在Vim中打开了文件并按照there解释:%s/\r/\r/g
,这很好。所以任何想法为什么dos2unix都不起作用?有没有办法避免每次都打开Vim?
答案 0 :(得分:11)
\r
表示回车符,而在MAC上,没有\n
表示换行符。您确定文件是DOS(\r\n
)格式而不是MAC(\r
)吗?
如果VIM真的是唯一可以修复文件的东西,你也可以调用它:
vim somefile.txt +"%s/\r/\r/g" +wq
这将打开文件,执行操作,保存,然后退出。
您能举例说明该文件,以便我们进一步调查吗?
答案 1 :(得分:8)
我知道你已经解决了这个问题,但我想根据我所做的一些测试添加一个注释供参考。
如果显示^ M,那么就像Sybren一样,我怀疑它是MAC风格的结尾(\ r),而不是DOS(\ r \ n)。您可以轻松地使用cat确定:
$ cat -e filename
使用dos2unix摆脱DOS(^ M $)结尾
使用 mac2unix 来摆脱MAC(^ M)结尾 - dos2unix将无法摆脱这些。
我有一个文件,我必须使用dos2unix和mac2unix来摆脱所有非Unix结尾。
答案 2 :(得分:0)
试试这个:
tr -d '\r' < file
答案 3 :(得分:0)
我使用了Notepad ++功能: 编辑> EOL转换> Unix(LF)。
现在使用pscp.exe将此文件导出到Unix计算机。
让我知道这是否对您有用。