文件为bid.nus.edu.sg/group/TTD/filedownload.asp? File =flatfiles/drug-disease - ttd2013 .txt
当我使用cat -A drug-disease_TTD2013.txt
时,它在每行的末尾显示^M$
。在vim中,有set list
,只有$
,没有^M
。
sed 's/r//' drug-disease_TTD2013.txt >1.t
可以使它相同。但我不知道为什么?(修订)
也在cat的手册:-v use ^ and M- notation, except for LFD and TAB
这是什么意思?
在另一个问题中不是同样的情况
谢谢。
在vim中输入
:set ff?
我想它会以
回应fileformat=dos
这意味着行尾是␍␊
(^M^J
, rn
)而不仅仅是␊
(^J
, n
)。当打开文件时,如果所有换行符都是相同的两字节序列,vim会自动检测到这一点。
要在unix模式下重新打开文件,只需键入:
:e ++ff=unix
现在将显示^M
字符。即使没有list
选项,它也会显示它们,因为它们现在作为常规字符在缓冲区中。
cat
是一个Unix工具,因此需要平台的行结束符LF (^J
)。
Vim是多平台的,可以检测(一致地)使用不同的行结尾。你的文件显然有windows风格的CR-LF行结尾,所以Vim只显示$
符号。
要改变这一点,您可以在打开时显式指定文件格式:
$ vim -c 'set list' -c 'edit ++fileformat=unix drug-disease_TTD2013.txt'
如果您只是在Linux/Unix系统上,那么使用sed
、dos2unix
或Vim将源文件转换为Unix风格的行尾可能是最简单的。