为什么Linux diff实用程序在内容相同时会产生输出?

时间:2012-03-06 08:37:11

标签: linux

当我在工作站上运行diff程序时,我不知道为什么。它给出了输出差异,而文件内容对我来说似乎是一样的。 这是我的输出结果 但是当我使用vimdiff打开文件时。它们没有任何区别。谁知道原因? PS。我使用了diff a.txt b.txt和vimdiff a.txt b.txt的命令 谢谢你的回答

1 个答案:

答案 0 :(得分:4)

我通常发现它与行结尾有关。 DOS样式的文件,其行结尾为CR/LF(回车符和换行符(a)),而UNIX样式的文件只有LF

虽然他们可能看起来相同,但他们不是。我建议你做一个文件的十六进制转储,看看有哪些实际的(但隐藏的)字符,例如:

od -xcb file | less

具有DOS样式行结尾的文件在每行的末尾都有\r \n。 UNIX-stle只有\n (b)


(a)回滚到打字机的日子,当回车意味着将滑架向左滑动时,换行意味着将纸张滚动到一条线上,将打印头留在整篇论文中的相同立场。通常,这些操作是合并但并非总是如此。

(b) Mac风格的文件,至少在他们结束并开始使用体面的操作系统之前,只有\rCR字符。