Aqui está uma abordagem usando apenas os internos do shell:
$ IFS=: read start end < input.txt
$ for (( x=16#$start; x<=16#$end; x++ )); do printf "%X\n" $x; done
2E25
2E26
2E27
2E28
2E29
2E2A
2E2B
2E2C
2E2D
2E2E
2E2F
2E30
Primeiro, lemos os parâmetros inicial e final do disco. Em seguida, fazemos um loop, interpretando os valores como números hexadecimais (consulte a seção Arithmetic Evaluation
da% man_de ksh
para a discussão da construção [base#]n
), depois imprimindo cada entrada, formatando-a como hexadecimal.
Por favor, note que eu não uso ksh
regularmente, provavelmente há uma abordagem melhor para esse problema.