批量重命名mp3歌曲

批量重命名mp3歌曲

我使用 testdisk 恢复了数十万首 .mp3 歌曲,并在目录中生成了如下结果:

f196833984.mp3

然而,当加载到 Rhythmbox 中时,它们会显示为原始标记。

我想要做的是删除命名并替换为标记信息,并在目录中查看该信息。

这是现在所有情况的图像。 在此输入图像描述

这是输出

id3v2 -l f194867904.mp3

来自 id3v2:

> id3v1 tag info for f194867904.mp3:
Title  : "Sempre libera"                 Artist: Anna Netrebko                 
Album  : Rolando Villaz�n / Violetta -   Year: 2005, Genre: Classical (32)
Comment: Easy CD-DA Extractor            Track: 5
id3v2 tag info for f194867904.mp3:
TIT2 (Title/songname/content description): "Sempre libera"
TPE1 (Lead performer(s)/Soloist(s)): Anna Netrebko
TPE2 (Band/orchestra/accompaniment): Anna Netrebko
TALB (Album/Movie/Show title): Rolando Villazón / Violetta - Arias and Duets from Verdi's La Traviata
TYER (Year): 2005
COMM (Comments): ()[XXX]: Easy CD-DA Extractor
TCON (Content type): Classical (32)
TRCK (Track number/Position in set): 5

多谢。我现在将结果发布为图像,它准确地显示了我所做的事情和结果。最左边的图像是最右边终端中列出的歌曲的文件夹。歌曲去了哪里,我不知道。但它留下了一个,我在打字时很享受它。您可以在 VLC 中看到这一点,如下图所示。 在此输入图像描述

答案1

如果你不喜欢 shell 脚本的想法,我真的很喜欢水坑标签管理我的音乐文件上的标签。你可以根据标签批量重命名文件只需点击几下鼠标。

答案2

我只想用一个for循环迭代目录中的每个文件。

每次迭代都会使用ff探针转储标签,然后grep过滤文本并获取标题艺术家作为单独变量中的干净文本字符串。

最后将文件重命名为:'Artist - Title.ext'


重要的:将其中一些文件复制到一个新的、单独的(或者空的)目录中。

然后,在对所有这些文件运行脚本之前,对该目录的内容执行任何脚本的测试运行...如果发生意外情况,它可以帮助您避免数据丢失。


例子:


for fN in * ;do
  strTags="$(2>&1 ffprobe -loglevel quiet -show_entries format_tags=artist,title "${fN}"|grep 'TAG:.*=.*$')"

  strTitle="$(echo "${strTags}"|grep 'TAG:title=.*$')"
  strArtist="$(echo "${strTags}"|grep 'TAG:artist=.*$')"

  mv "${fN}" "${strArtist:10}"' - '"${strTitle:9}${fN: -4:4}"

done

答案3

在做任何事情之前阅读整篇文章

#!/bin/bash

for file in $(ls $1)
do
  line=$(id3v2 -l $file | sed -n '2p')
  title=$(echo $line | cut -d '"' -f 2 | sed 's/ /_/g')
  artist=$(echo $line | cut -d ':' -f 3 | awk '{$1=$1};1' | sed 's/ /_/g')
  mv $1/$file $1/$artist-$title
done

这应该将每个文件重命名为 <艺术家姓名> <歌曲标题>,中间有破折号。

将其另存为某些内容(例如 script.sh),使其可执行(chmod +x script.sh),然后运行它,然后指定目标目录,例如:

./script.sh <target directory>

确保目标目录中只有您要重命名的歌曲
按 Enter 之前请确保语法正确
我只在您发布的示例上对此进行了测试

使用不当可以搞乱你的系统如果这个脚本最终得到一个错误的 ls 调用。为了避免任何其他潜在问题,我建议创建一个新目录,复制大约 5-10 首歌曲,然后在那里运行脚本以验证它是否正常工作并符合您的喜好。

使用风险由您自行承担

相关内容