Estou tendo um pequeno problema, não posso usar o bash v.4. Vou usar o bash 3.2.57. Estou inserindo meu script neste formulário, logs_logs_2017-04-{02..06}.tar.bz2
mas como o bash 3.2.57 não suporta expansão de chaves com zeros à esquerda, o script é alimentado com o seguinte logs_logs_2017-04-2.tar.bz2 logs_logs_2017-04-3.tar.bz2 .....
e esses nomes de arquivo não existem.
Qualquer ideia ?
Obrigado !
Responder1
Contorne o zero inicial:
somecmd logs-0{2..9}.tar.bz2 logs-{10..15}.tar.bz2
(O 02..06
no exemplo é trivial de tratar dessa maneira.)
Ou use printf
:
somecmd $(printf "logs-%02d.tar.gz " {2..15})
Isso depende da divisão de palavras e funciona apenas enquanto o nome do arquivo não tiver caracteres glob ou espaços em branco.
Feito corretamente, isso seria simples, mas um pouco longo:
files=()
for x in {2..15} ; do
files+=( "$(printf "logs-%02d.tar.gz" $x)" )
done
somecmd "${files[@]}"