Basta preencher o formato com zeros à esquerda. Então, para o seu exemplo, faça:
curl http://example.com/[01-12]/file_name[01-50].kmz -o file_name-#1-#2.kmz'
É possível definir a parte variável da saída do nome do arquivo como um comprimento específico e preencher os espaços extras com zeros.
Eu quero que as coisas sejam ordenadas para outros usuários, então eu gostaria de
curl http://example.com/[1-12]/file_name[1-50].kmz -o file_name-#1-#2.kmz'
para parecer
file_name-01-01.kmz or file_name-12-50.kmz
em vez de
file_name-1-1.kmz and file_name-12-50.kmz
Existem muitas maneiras. Você poderia usar expansão da cinta Bash de uma maneira inteligente para gerar nomes de arquivos com preenchimento zero , mas logo se tornará complexo. É mais fácil renomear em lote depois de ter feito o download dos arquivos, usando, por exemplo, o script prename
, que está disponível em pelo menos distribuições baseadas no Debian após a instalação do Perl.
Esse comando prename
fará o preenchimento zero com três dígitos (altere o {3} para outro número para alterar o preenchimento de zeros. Verifique se há zeros de > {n-1} após a segunda barra na primeira expressão ):
$ ls
file_name-1-1.kmz file_name-12-112.kmz file_name-12-50.kmz file_name-140-88.kmz
$ prename -v 's/([0-9]+)/00$1/g; s/0+([0-9]{3})/$1/g' *
file_name-1-1.kmz renamed as file_name-001-001.kmz
file_name-12-112.kmz renamed as file_name-012-112.kmz
file_name-12-50.kmz renamed as file_name-012-050.kmz
file_name-140-88.kmz renamed as file_name-140-088.kmz
Executar como prename -n
pela primeira vez para poder inspecionar visualmente as renomeações sem fazer nenhuma alteração. Verifique man prename
.
A expressão renomear trabalha primeiro preenchendo todos os números com zeros n-1 e, em seguida, removendo quantos zeros forem necessários para ter n dígitos em todos os números. Não truncará informações, o que é bom.
Os números flutuantes não são tratados acima (por exemplo, file_name-12.7-112.97.kmz
), mas podem ser feitos facilmente com
s/([^\.0-9])([0-9]+)/${1}00$2/g; s/0+([0-9]{3})/$1/g
mas essa versão mais geral também é mais indecifrável :-) (e pode ter sua própria parte de bugs; se floats não forem necessários, use a versão anterior).
( prename
está realmente vinculado como rename
na maioria dos sistemas.)
Tags curl