#!/bin/bash function oct2asc() { if [[ $1 ]]; then echo -en "\0$(printf %o $((8#$1)))" fi } function oct2dec() { if [[ $1 ]]; then echo $((8#$1)) fi } IFS=$'\n' list=$( cmp -l $1 $2 ) for i in $list do lval=$val val=$( echo $i | awk '{ print $1 }' ) if [[ $lval != "" ]]; then if [[ $val != $(( lval + 1 )) ]]; then echo fi fi data=$( echo $i | awk '{ print $2, $3 }' ) i="$(( val - 1 )) $data" echo $i | awk 'function oct2dec(oct, dec) { for (i = 1; i <= length(oct); i++) { dec *= 8; dec += substr(oct, i, 1) }; return dec } { printf "%08X %02X %02X ", $1, oct2dec($2), oct2dec($3) }' val1=$( echo $i | awk '{ print $2 }' ) val2=$( echo $i | awk '{ print $3 }' ) val1dec=$( oct2dec $val1 ) val2dec=$( oct2dec $val2 ) if [[ $val1dec -ge 32 && $val1dec -le 126 ]] then oct2asc $val1 else printf " " fi if [[ $val2dec -ge 32 && $val2dec -le 126 ]] then printf " " oct2asc $val2 fi echo done