Skip to content

Binary File Comparison Cheatsheet: Using diff, cmp, and xxd


This will print the offset and bytes in hex:

cmp -l file1.bin file2.bin | gawk '{printf "%08X %02X %02X\n", $1, strtonum(0$2), strtonum(0$3)}'

Or do $1-1 to have the first printed offset start at 0.

cmp -l file1.bin file2.bin|gawk '{printf "%08X %02X %02X\n", $1-1, strtonum(0$2), strtonum(0$3)}'

diff + xxd

diff -y <(xxd foo1.bin) <(xxd foo2.bin)

colordiff + xxd

colordiff -y <(xxd foo1.bin) <(xxd foo2.bin)

Diff two files with diff + strings

diff -y <(strings device.cfg) <(strings device2.cfg)