Batch renomeia arquivos para mover a sequência do final para o início

1

Eu tenho vários arquivos que usam o convert do IM de um PDF para muitas miniaturas de imagens. Nessa conversão, eu tenho arquivos chamados algo-0.jpg. Então, digamos que um PDF tenha 45 páginas, cada página é:

something-0.jpg
...
something-45.jpg

Eu quero que isso seja algo como

th0-something.jpg
...
th45-something.jpg
    
por jmlumpkin 06.11.2018 / 20:59

2 respostas

2
for num in {0..45}; do
   mv "something-${num}.jpg" "th${num}-something.jpg"
done

Se o número for variável, você pode fazer algo como:

for num in $( seq 1 ${last-10} ); do
   mv "something-${num}.jpg" "th${num}-something.jpg"
done

Se last não estiver definido, o padrão de 10 será usado. Isso significa que você pode rolá-lo em um script:

last="${1-10}" # $1 is the first parameter given; use a default 
               # of 10 if not provided a value
for num in $( seq 1 $last ); do
   mv "something-${num}.jpg" "th${num}-something.jpg"
done
    
por 06.11.2018 / 21:09
3

Com o zsh shell:

autoload zmv # best in ~/.zshrc
zmv -n '(*)-(<->).jpg' 'th$1-$2.jpg'

(remova -n quando feliz).

    
por 06.11.2018 / 21:25

Tags