有人能告诉我 cmp 命令输出中的“行”号代表什么吗?我问这个是因为,首先,我在任何地方都找不到它的解释。其次,我得到比较一组文件的结果,其中“char”输出相同(如预期)但“line”输出差异很大。
问问题
350 次
1 回答
1
“行”输出反映了在文件中该点之前看到的换行符的数量。
对于非文本格式的文件,“行”输出可能没有意义,可以忽略;对于文本格式的文件,返回的行号可以在文本编辑器中用于导航到有差异的区域。
根据POSIX 规范cmp
:
对于不是文本文件的文件,行号只是反映了 <newline> 的存在,并不意味着文件被组织成行。
因为默认情况下cmp
只打印看到的第一个差异,所以两个文件之间的行号保证在该点是相同的。当通过时-l
,cmp
继续超出第一个差异 - 但不再打印行号,从而避免关于哪个文件的行号计数是规范的任何歧义。
于 2015-11-09T16:14:05.863 回答