Это напечатает смещение и байты в шестнадцатеричном виде:
cmp -l file1.bin file2.bin | gawk ''
Или сделать так, $1-1
чтобы первое напечатанное смещение начиналось с 0.
cmp -l file1.bin file2.bin | gawk ''
К сожалению, strtonum()
это специфично для GAWK, поэтому для других версий awk - например, mawk - вам нужно будет использовать функцию преобразования восьмеричного числа в десятичное. Например,
cmp -l file1.bin file2.bin | mawk 'function oct2dec(oct, dec) ; return dec} '
Вычеркнуто для удобства чтения:
cmp -l file1.bin file2.bin | mawk 'function oct2dec(oct, dec) { for (i = 1; i <= length(oct); i++) { dec *= 8; dec += substr(oct, i, 1) }; return dec } { printf "%08X %02X %02X\n", $1, oct2dec($2), oct2dec($3) }'