echo 1-6,8,11-12 | tr -cd "0-9,\n-" | tr "," "\n" | while IFS=- read A B; do eval echo {$A..${B:-$A}}; done | tr "\n" " "
Saída:
1 2 3 4 5 6 8 11 12
No bash, tenho um programa que lista várias opções de arquivos para download e, em seguida, solicita que o usuário selecione alguns. Gostaria que o usuário pudesse digitar algo como 1-6,8,11-12
para baixar os arquivos 1, 2, 3, 4, 5, 6, 8, 11 e 12. Como posso gerar uma seqüência de números (para colocar em um loop for
) deste tipo de entrada legível por humanos?