Tentando renomear arquivos com base em arquivos de texto

Tentando renomear arquivos com base em arquivos de texto

Estou tentando renomear um diretório cheio de arquivos com base no conteúdo de dois arquivos de texto. OLD(que contém os nomes completos dos arquivos atuais) e NEW(que contém os nomes que desejo renomeá-los) ambos na mesma ordem.

Como eu renomearia os arquivos de OLDpara NEW?

Cada arquivo contém \nnome separado

Linha de exemplo ANTIGA:Blah Blah Blah Campaign 2 Episode 1.mp4

NOVA linha de exemplo:Campaign 2 Episode 1.mp4

Responder1

Um muito específico do zsh:

old=(${(f)"$(<OLD)"}) new=(${(f)"$(<NEW)"})
for o n (${old:^new}) echo mv -i -- $o $n

Remova echoquando estiver feliz.

Ou um portátil:

while IFS= read -r old <&3 && IFS= read -r new <&4; do
  echo mv -i -- "$old" "$new"
done 3< OLD 4< NEW

informação relacionada