Renomeie arquivos em um diretório baseado fora do texto contido em um arquivo de texto

1

Estou tentando renomear cerca de 20 arquivos em um diretório baseado no que um arquivo de texto contém. Eu tenho procurado e não consigo encontrar nada que realmente descreva o processo. Todos os arquivos originais são assim:

Track 1.wav
Track 2.wav 

etc ...

Eu gostaria de renomeá-los para isso, que é digitado em um arquivo de texto, com o nome que eu gostaria para o arquivo linha por linha.

We are Yours
Awake my Love

etc.

Alguém tem alguma ideia de como fazer isso? Eu faço um pouco, mas acabo fazendo isso manualmente e acabou de ficar velho.

    
por Justin Gagnon 25.12.2015 / 23:14

1 resposta

2

Que tal

n=1
while IFS= read -r newname; do
  printf -v oldname 'Track %d.wav' $((n++)) 
  echo mv -vn "$oldname" "$newname"
done < "filenames.txt"

em que filenames.txt é o nome do arquivo no qual você digitou os novos nomes desejados.

Se parece estar fazendo a coisa certa, remova o echo e execute-o novamente para realmente renomear os arquivos

    
por steeldriver 25.12.2015 / 23:57