Confira o FileBot no link ou < href="https://www.filebot.net/"> link ou a loja do Ubuntu Software. Ele fornece uma boa maneira de renomear arquivos de vídeo em massa.
Estou procurando uma maneira de limpar minha convenção de nomenclatura na minha pasta de mídia.
Por exemplo, renomeie
The Thing (1982)
|_ The Thing (1982).mkv
para:
Thing, The (1982)
|_ Thing, The (1982).mkv
Eu encontrei muitas mensagens e scripts para renomear com base em padrões, ou nomes de pastas, mas não algo tão básico e específico.
Basicamente, o Plex classifica 'The' movies e shows corretamente, mas Emby classifica os shows e filmes baseados no formato de nomenclatura de arquivos / pastas. Assim, gostaria de corrigir minha convenção de nomenclatura.
Alguém pode ajudar com isso?
Apenas uma forma de abordar o problema com o Perl rename
:
rename -n 's/The ([^(]*) /$1, The /'
Isso salva o nome sem o "O" inicial como grupo 1 e substitui essa parte do nome pelo grupo 1 seguido por ", O".
Como você deseja renomear os diretórios, bem como os arquivos neles, é necessário renomear em duas etapas, primeiro os diretórios e depois os arquivos. Com a opção -n
, rename
apenas imprime os nomes dos arquivos a serem renomeados sem realmente executar - isso é ótimo para testes.
$ tree -A --noreport
.
└── The\ Thing\ (1982)
└── The\ Thing\ (1982).mkv
$ rename -n 's/The ([^(]*) /$1, The /' */ # */ matches every directory
rename(The Thing (1982)/, Thing, The (1982)/) # old and new name appear in the brackets, separated by comma
$ rename 's/The ([^(]*) /$1, The /' */ # let's go!
$ tree -A --noreport # dirs are done, now to the files!
.
└── Thing,\ The\ (1982)
└── The\ Thing\ (1982).mkv
$ rename -n 's/The ([^(]*) /$1, The /' */* # */* matches every file in a subdirectory
rename(Thing, The (1982)/The Thing (1982).mkv, Thing, The (1982)/Thing, The (1982).mkv)
$ rename 's/The ([^(]*) /$1, The /' */*
$ tree -A --noreport
.
└── Thing,\ The\ (1982)
└── Thing,\ The\ (1982).mkv
É claro que você pode deixar de fora a etapa -n
, mas é melhor prevenir do que remediar.