Mover parte do nome do arquivo para metadados

2

Eu tenho milhares e milhares de músicas que são nomeadas como

Artist - Song.mp3
Artist - Song.mp3
etc

O que eu preciso fazer é mover tudo antes do "-" e adicioná-lo aos metadados do arquivo como "Artista"

Eu tentei alguns programas de renomeação em massa, e alguns comandos, mas nenhum parece funcionar, eles apenas movem as coisas no nome do arquivo. Todos os comandos que eu tentei são "one-liners", então talvez no terminal eu poderia cortar a parte do nome do arquivo antes do "-" colocá-lo em um arquivo de texto e, em seguida, alguns como usar isso? Não tenho certeza, ainda é muito novo no elementar.

Se você não pode fazer isso no Ubuntu, eu tenho um sistema Windows 7 que eu posso usar.

    
por Zachary Wight 07.05.2016 / 06:37

1 resposta

2

Se as suas músicas estiverem todas marcadas com exatamente no formato sugerido: Acris & Infra - Justice.mp3 um simples for loop pode realizar a marcação e a renomeação sequencialmente com um comando.

Teste o seguinte em uma pequena seleção de backup dos seus arquivos:

for f in *.mp3; do
   artist="$(printf "$f" | cut -d '-' -f 1 | sed 's/ *$//')"
   eyeD3 --artist "$artist" "$f" 
   mv -nv "$f" "$(printf "$f" | cut -d'-' -f 2 | sed 's/^ *//')"
done

Dois pontos:

  1. O comando mv tem a salvaguarda da opção -n ou --no-clobber no caso de qualquer uma das suas coleções ter dois artistas / arquivos diferentes com o mesmo título da música ...
  2. Você precisará instalar eyeD3 para fazer a marcação ou simplesmente alterar a sintaxe para usar o tagger com o qual você está mais satisfeito
por andrew.46 09.05.2016 / 01:46