【发布时间】:2022-01-01 20:41:58
【问题描述】:
我有大量音频文件,对于每个音频文件,我想获取“艺术家”的值,并将“专辑艺术家”设置为我从“艺术家”获得的值。
【问题讨论】:
我有大量音频文件,对于每个音频文件,我想获取“艺术家”的值,并将“专辑艺术家”设置为我从“艺术家”获得的值。
【问题讨论】:
安装 eyed3,一个可以读写音频标签的免费命令行工具。
将所有音频文件标签设置为idv2.4:
find . -name "*" -type f -exec eyeD3 --to-v2.4 {} \; >> ~/eyed3.log 2>&1
删除剩余的 idv1.0 标签(有些播放器会同时读取 idv1 和 idv2 并将 idv1 优先于 idv2,这有时会导致您无法通过音乐播放器编辑标签):
find . -name "*" -type f -exec eyeD3 --remove-v1 {} \; >> ~/eyed3.log 2>&1
使用 find 命令并在每次点击时执行 shell 代码:读取标签,grep 艺术家字段,删除“艺术家:”字符串,并将结果存储在变量专辑艺术家中。然后再次使用 eyed3 将值从艺术家写入到专辑艺术家字段。
find . -name "*" -type f -exec sh -c 'albumartist=$(eyeD3 "$1" | grep -P "(?<=^artist)" | sed "s/artist\:\ //g"); eyeD3 -b "$albumartist" "$1"' sh {} \;
【讨论】: