I need to compare two binary files and get the output in the form:
<fileoffset-hex> <file1-byte-hex> <file2-byte-hex>
for every different byte. So if file1.bin
is
00 90 00 11
in binary form and file2.bin
is
00 91 00 10
I want to get something like
00000001 90 91
00000003 11 10
Is there a way to do this in Linux? I know about cmp -l
but it uses a decimal system for offsets and octal for bytes which I would like to avoid.
Best Answer
This will print the offset and bytes in hex:
Or do
$1-1
to have the first printed offset start at 0.Unfortunately,
strtonum()
is specific to GAWK, so for other versions of awk—e.g., mawk—you will need to use an octal-to-decimal conversion function. For example,Broken out for readability: