, KSH OpenBSD ( Bourne, bash).
#!/bin/sh
START=$1
END=$2
function h2d {
echo "ibase=16; $@"|bc
}
function d2h {
echo "obase=16; $@"|bc
}
START_DEC=`h2d ${START}`
END_DEC=`h2d ${END}`
LENGTH=`expr ${#END} - 1`
for i in `nawk "BEGIN{ for(i=${START_DEC};i<=${END_DEC};i++) print i}"`
do
OUTPUT=`d2h ${i}`
OUTPUT_LENGTH=`expr ${#OUTPUT}`
PAD_LENGTH=`expr ${LENGTH} - ${OUTPUT_LENGTH}`
for j in `nawk "BEGIN{ for(j=0;j<=${PAD_LENGTH};j++) print j}"`
do
echo -n 0
done
echo -n ${OUTPUT}\;
done
echo
:
$ ./hex-range.sh 91 FF
91;92;93;94;95;96;97;98;99;9A;9B;9C;9D;9E;9F;A0;A1;A2;A3;A4;A5;A6;A7;A8;A9;AA;AB;AC;AD;AE;AF;B0;B1;B2;B3;B4;B5;B6;B7;B8;B9;BA;BB;BC;BD;BE;BF;C0;C1;C2;C3;C4;C5;C6;C7;C8;C9;CA;CB;CC;CD;CE;CF;D0;D1;D2;D3;D4;D5;D6;D7;D8;D9;DA;DB;DC;DD;DE;DF;E0;E1;E2;E3;E4;E5;E6;E7;E8;E9;EA;EB;EC;ED;EE;EF;F0;F1;F2;F3;F4;F5;F6;F7;F8;F9;FA;FB;FC;FD;FE;FF;
, :
$./hex-range.sh 91 FF > output.txt