将部分文件名移至元数据

将部分文件名移至元数据

我有成千上万首歌曲,名字如下;

Artist - Song.mp3
Artist - Song.mp3
etc

我需要做的是移动“-”之前的所有内容并将其作为“艺术家”添加到文件的元数据中

我试过几个批量重命名程序和几个命令,但似乎都不起作用,它们只是在文件名中移动东西。我试过的所有命令都是“单行命令”,所以也许如果在终端中我可以剪切文件名中“-”之前的部分,将其放入文本文件中,然后如何使用它?我不确定,对 elementary 来说还很陌生。

如果您无法在 Ubuntu 中执行此操作,我有一个可以使用的 Windows 7 系统。

答案1

如果你的歌曲都贴有标签确切地按照您建议的格式:Acris & Infra - Justice.mp3一个简单的for循环可以用一个命令按顺序完成标记和重命名。

对少量备份文件进行以下测试:

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

两点:

  1. 如果您的收藏中有 2 个不同的艺术家/文件但歌曲标题相同,该命令具有或选项mv的保障...-n--no-clobber
  2. 您需要安装eyeD3才能进行标记,或者只需更改语法即可使用您最满意的标记器

相关内容