linux cmp 实用程序输出:什么是 "line"?

linux cmp utility output: what is a "line"?

有人能告诉我 cmp 命令输出中的 "line" 数字代表什么吗?我问这个是因为,首先,我无法在任何地方找到它的解释。其次,我比较了一组文件的结果,其中 "char" 输出相同(如预期)但 "line" 输出差异很大。

"line" 输出反映文件中该点之前看到的换行符数。

对于非文本格式的文件,"line" 输出不太可能有意义,可以忽略;对于 文本格式的文件,返回的行号可以在文本编辑器中用于导航到有差异的区域。


the POSIX spec for cmp:

For files which are not text files, line numbers simply reflect the presence of a <newline>, without any implication that the file is organized into lines.


因为默认情况下 cmp 只打印看到的第一个差异,所以保证两个文件之间的行号在那一点上是相同的。当传递 -l 时,cmp 继续超出第一个差异 - 但不再打印行号,从而避免关于哪个文件的行号计数是规范的歧义。