我正在用xld编写一个用于批量处理音频文件的脚本。我想找到未拆分的专辑,将它们拆分并转换为flac,并带有适当的标签。
find . -name "*.ape" -exec sh -c 'exec xld "$1" -f flac' _ {} ;
这个命令行正在将音频转换为flac,但我必须添加"flac"-c filename.cue";选项,使其拆分文件。
查找-name"*。猿-exec sh-c'exec echo$1|sed的/.ape/.cue/'_{};
此命令行显示.cue文件的路径
查找-name"*。猿-exec sh-c"exec xld"$1〃-f flac-c$1|sed's/.ape/.cue/'_{};
这个命令行不起作用,xld说他没有找到de cue文件。我认为这只是一个语法问题。
谢谢你的帮助
我没有像平时那样在计算机上测试它,但在bash
中,你可以替换如下变量的尾部:
thing="fred.ape"
echo ${thing/%.ape/.cue}
fred.cue
它被称为"参数替换/扩展">,并在这里用例子进行了解释。
因此,基于此,您需要执行bash
,类似于以下内容:
find . -name "*.ape" -exec bash -c "xld "$1" -f flac -c "${1/%.ape/.cue}"' _ {} ;
就我个人而言,我会与GNU并行并行执行所有操作,如下所示:
parallel xld {} -f flac -c {.}.cue ::: *.ape
您可以使用自制程序安装它,使用:
brew install parallel