Substitua o número do CD na tag MP3 ID3

5

Eu tenho uma biblioteca de arquivos MP3 onde, em alguns arquivos, a tag "número do CD" (TPOS) contém valores "CDx", por exemplo, "CD1" ou "CD2". A especificação ID3 diz que os valores TPOS devem ser seqüências numéricas. O processamento desses arquivos quebra alguns editores de tags, especificamente o eyeD3 ignora os valores.

Qual seria uma maneira inteligente de substituir essas tags ID3 por strings numéricas, via linha de comando?

Eu tenho uma solução que vem com alguma mágica de linha de comando, estou procurando algo mais simples:

find . -name "*.mp3" -exec id3v2 -R {} \; |awk -F": " '/^Filename/ {f=$2};/^TPOS/ {print f, "\t", $2}'|grep CD1|awk -F" \t" '{print $1}'|xargs -L 1 -d "\n" -I{} id3v2 --TPOS "1" {}

Resumindo: encontre arquivos mp3, extraia as tags ID3 com id3v2, extraia filename e TPOS com awk, grep para "CD1", recorte o nome do arquivo e aplique id3v2 para definir o número do disco como "1".

    
por Bernd 19.12.2013 / 22:59

1 resposta

1

Se os nomes de arquivo não contiverem caracteres de nova linha, você poderá escrevê-lo como:

exiftool -q -ext mp3 -if '$PartOfSet =~ /^CD\d+\z/' -p \
  '$PartOfSet:$Directory/$FileName' . | while IFS=: read -r p f; do
  id3v2 --TPOS="${p#CD}" "$f"; done
    
por 20.12.2013 / 18:04

Tags