1

我想自动标记 MP3 集合成为自定义名称 VA 专辑。目前,我正在使用这样一个非常安全的命令:

find . -name "*.mp3" -exec eyeD3 -A "Indie 2015" -b "Various Artists" {} \;

现在,我想在文件中添加一个运行轨道号。最直接的方法是 find -exec 命令中的当前匹配/行号 - 有这样的命令吗?

eyeD3 使用 -n NUM,--track NUM 设置轨道号,所以我正在寻找类似的东西

find . -name "*.mp3" -exec eyeD3 -A "Indie 2015" -b "Various Artists" -n **FIND_MATCH_NUMBER** {} \;
4

2 回答 2

2

一个选项,使用globstar(假设您在嵌套子目录中确实有文件,这就是您首先使用find的原因):

shopt -s globstar
n=1
for file in **/*.mp3; do
    eyeD3 -A "Indie 2015" -b "Various Artists" -n "$((n++))" "$file"
done

globstar启用后,**/*.mp3glob 会扩展到以当前目录以及子目录结尾的所有文件.mp3$((n++))计算计数器的当前值,$n然后将其递增。

于 2015-04-14T11:22:15.880 回答
0

不知道 find 是否有内部变量可以告诉 awk 中的 NR 等记录号。你可以在你的程序中有这样的东西

[[ -f file ]] && read i < file
[[ -z $i ]] && let i++
echo $i
let i++
echo $i > file

对于我们统计的每个文件,您可以使用。文件可以是任何临时文件。

于 2015-04-14T14:04:28.810 回答