Usando o Terminal para renomear certos arquivos numerados

1

Eu tenho uma série de arquivos numerados de 1 a 20 e o Terminal os classifica assim:

episode1.txt
episode10.txt
episode11.txt
episode12.txt

Eu quero renomear os arquivos de 1 a 9 inserindo 0 na frente do número. Meu código é o seguinte:

for file in episode{1-9}.txt
do
   rename -vs "episode"* "episode0"*
done

Eu também tentei o comando 'mv', mas não funciona. Alguém tem alguma sugestão? Agradecemos antecipadamente

    
por stitchineer 28.08.2017 / 18:59

1 resposta

0

Para enumerar uma sequência, use {x..y} em vez de {x-y} .

Como todos os seus arquivos têm um nome muito semelhante, podemos usar a expansão de parâmetro para cortar o prefixo episode ao substituí-lo por episode0 .

O comando completo é assim:

for file in episode{1..9}.txt
do
    mv "$file" "episode0${file#episode}"
done

${file#episode} é uma expansão de parâmetro que, nesse caso, expande o parâmetro file ao remover o padrão de prefixo mais curto que corresponde a episode .

    
por 28.08.2017 / 19:40