3

对于常规文件,我可以使用该comm命令来查找公共行。

例如我们有两个文件

$ cat f1
line1
line2
line3
line4
line5

$ cat f2
line1
line20
line30
line4
line5

它的比较像:

$ comm -12 f1 f2
line1
line4
line5

如何找到匹配行的偏移量以及如何对两个二进制文件进行比较并打印匹配行偏移量?

在过去的 1 小时里,我一直在使用,之类的东西diff,但无法弄清楚这一点。cmpcomm

编辑 1:不是确切的解决方案,但发现 vbindiff 它有点帮助。

4

1 回答 1

7

您可能正在寻找cmp

cmp - 逐字节比较两个文件

$ cmp f1 f2
f1 f2 differ: byte 12, line 2

$ cmp -b f1 f2
f1 f2 differ: byte 12, line 2 is  12 ^J  60 0

$ cmp -bl f1 f2
12  12 ^J    60 0
13 154 l     12 ^J
14 151 i    154 l
15 156 n    151 i
16 145 e    156 n
17  63 3    145 e
18  12 ^J    63 3
19 154 l     60 0
20 151 i     12 ^J
21 156 n    154 l
22 145 e    151 i
23  64 4    156 n
24  12 ^J   145 e
25 154 l     64 4
26 151 i     12 ^J
27 156 n    154 l
28 145 e    151 i
29  65 5    156 n
30  12 ^J   145 e
cmp: EOF on f1

来自man cmp

-b , --打印字节

打印不同的字节

-l , --详细

输出字节数和不同的字节值

于 2015-01-07T10:12:32.323 回答