Renomeação em massa de arquivos de arquivo de texto

Renomeação em massa de arquivos de arquivo de texto

Eu tenho uma pasta com cerca de 7.000 arquivos e cada arquivo é numerado, por exemplo, 74857.mkv 74858.mkv etc.

insira a descrição da imagem aqui

Eu também tenho um arquivo de texto que contém todos os números e nomes de arquivos:

Nesta ordem:

insira a descrição da imagem aqui

Gostaria de renomear cada arquivo do seu número para o seu nome; um exemplo:

74857.mkv > Tirada S01 E01.mkv

74858.mkv > Tirada S01 E02.mkv

Qualquer comando para fazer isso, por favor, tenho feito manualmente e só consegui fazer 50 arquivos em 5 dias!

Responder1

Assumindo que"é um exemplo de nome"é a string na linha imediatamente acima do .mkvnome do arquivo atual, ou seja, aquele dado

$ cat file.txt 
Taken S01 E01
74857.mkv
Taken S01 E02
74858.mkv

você realmente quer

74857.mkv > Tirada S01 E01.mkv

74858.mkv > Tirada S01 E02.mkv

então com GNU parallele mv:

parallel -N2 echo mv -- {2} {1}.mkv < file.txt

Remova o echoquando estiver satisfeito por ele estar compondo os comandos corretos.

Responder2

Eu faria isso em pequenos lotes e testaria com uma cópia se fosse você, mas algo assim deveria servir para você

while read n; do read f; mv $f "$n.${f##*.}"; done < file

Antes de começar, é aconselhável verificar a saída de

while read n; do read f; echo mv $f "$n.${f##*.}"; done < file > checkfile

Para ter certeza de que não há erros na renomeação do arquivo.

Mais seguro se você tiver espaço e tempo para copiar e manter seus originais seguros até que você esteja satisfeito....

while read n; do read f; cp $f "/a/safe/location/$n.${f##*.}"; done < file

Observação

Para reverter o processo basta inverter a ordem dos nomes no mvcomando

mv "$n.${f##*.}"  $f

Responder3

Com perl:

perl -lne '$dst = "$_.mkv"; $src = <>; chomp $src; rename $src, $dst
  or warn "$src -> $dst: $!\n"' your-file

Com zsh:

zmodload zsh/files # to get a builtin mv
while IFS= read -ru3 dst && IFS= read -ru3 src; do
   mv -- "$src" "$dst.mkv"
done 3< your-file

informação relacionada