Bash incrementa dados alfanuméricos do prompt de comando

0

Preciso incrementar dados alfanuméricos.

Incrementar números com seq é fácil: seq -w 0000001 9999999 >> file

Mas preciso incrementar os dados alfanuméricos da seguinte forma:

0000001
0000002
0000003
0000004
0000005
0000006
0000007
0000008
0000009
000000a
000000b
000000c
000000d
000000e
0000010
0000011
0000012
0000013
0000014
0000015
0000016
0000017
0000018
0000019
000001a
000001b
000001c
000001d
000001e
0000020
0000021

etc ... até eu acertar eeeeeee

Usando dados alfanuméricos {0-9a-e} . Só precisa carregar os dados em um arquivo vazio e pronto. Existe um comando bash fácil para isso algo semelhante ao comando seq ? Estou usando o Linux Debian 6.3.0-18 e o Bourne Again Shell.

    
por RainyDay 24.03.2018 / 04:03

2 respostas

1

Assumindo que você realmente quer dizer hex (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F), aqui está uma solução até FF (I não quero contar para 4,3 bilhões):

(echo obase=16; seq 1 $((echo ibase=16; echo FF) | bc)) | bc

O interior

(echo ibase=16; echo FF) | bc

calcula o valor final em decimal (aqui FF, mas fique à vontade para substituir FFFFFFFF se você quiser :-). O seq então conta de um para 255 neste caso, e o restante converte para hexadecimal.

E se você realmente quer a base 15, você pode mudar os 16's para os 15's (e o FF ... para EE ...).

    
por 24.03.2018 / 05:04
1

Apenas brinque com os operadores de impressão

#!/bin/bash
 for number in $( seq 1 255 )
  do
    hex_representation=$( printf "%X" ${number} )
    echo "${number}: ${hex_representation}"
 done
    
por 24.03.2018 / 05:04