我有两个大文件,一个C代码逐行写入9600000个浮点值。我知道有类似的,它们实际应该是一样的。如何比较它们,看看是否有任何区别? 我试过了
cmp base.txt base4.txt
base.txt base4.txt differ: byte 811221, line 62402
但这不起作用,它会在屏幕上打印出第二个文件。
用
{{1}}
这是什么意思,62402行不同?
答案 0 :(得分:2)
cmp
的输出意味着文件之间的第一个区别是文件中的字节位置811221
,它位于62402
行上。例如,如果两个文件是:
abcd
1234
wxyz
9876
和
abcd
1234
wqyz
9812
输出是:
file1.txt file2.txt differ: char 12, line 3
因为在第3
行,一个文件有x
而另一个文件有q
,这些文件位于字节位置12
(换行符包含在字节中计数)。
如果您想查看所有差异,请使用-l
选项。
$ cmp -l file1.txt file2.txt
12 170 161
18 67 61
19 66 62
请注意,与diff
不同,这对于插入和删除并不聪明,它只是比较每个位置的每个字节。因此,如果您在文件的早期插入或删除某个字符,那么之后的所有内容都将显示为不匹配。