档案为bidd.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
这是什么意思?
谢谢。
答案 0 :(得分:3)
在vim中,输入
:set ff?
我想它会以
回复fileformat=dos
这意味着行尾是␍␊
(^M^J
,\r\n
),而不仅仅是␊
(^J
,\n
) 。如果所有换行符始终是相同的双字节序列,则在打开文件时由vim自动检测。
要在unix模式下重新打开文件,只需输入:
:e ++ff=unix
现在它将显示^M
个字符。即使没有list
选项,它也会显示它们,因为它们现在作为常规字符存在于缓冲区中。
答案 1 :(得分:1)
cat
是一个Unix工具,因此需要平台的行结尾,LF(^J
)。
Vim是多平台的,可以检测不同行结尾的(一致)使用。您的文件显然具有Windows样式的CR-LF行结尾,因此Vim只显示$
sigil。
要更改它,您可以在打开时显式指定fileformat:
$ vim -c 'set list' -c 'edit ++fileformat=unix drug-disease_TTD2013.txt'
如果你只是在Linux / Unix系统上,使用sed
,dos2unix
或者{{1}},或者将源文件转换为Unix风格的行结尾可能是最容易的。 VIM。