我正在测试带有参数扩展的 bash 文件名替换,如下所示:如何更改 Linux shell 脚本中的文件扩展名?
但是,我似乎无法按照我的意愿进行以下工作:
给定以下文件:
tmp/01. Losing A Whole Year.flac
tmp/02. Narcolepsy.flac
我运行find
flac 文件以parallel
运行echo
测试输出的命令。我正在尝试替换.flac
为.mp3
.
find tmp -type f -name '*.flac' | time parallel -j+0 --eta 'echo "{} {.flac%%.mp3}"'
我的输出是:
tmp/01. Losing A Whole Year.flac {.flac%%.mp3}
tmp/02. Narcolepsy.flac {.flac%%.mp3}
如果有什么不同,我打算使用它ffmpeg
。
编辑:预期输出:
tmp/01. Losing A Whole Year.flac tmp/01. Losing A Whole Year.mp3
tmp/02. Narcolepsy.flac tmp/02. Narcolepsy.mp3
编辑2:要替换文件扩展名,我可以使用:
find tmp -type f -name '*.flac' | time parallel -j+0 --eta 'echo "{} {.flac%%.mp3}"'
但是,这提供了以下输出
tmp/01. Losing A Whole Year.flac tmp/01.\ Losing\ A\ Whole\ Year.mp3
tmp/02. Narcolepsy.flac tmp/02.\ Narcolepsy.mp3
\
也许现在这是一个 ffmpeg 问题,因为如果有一个字符代替空格字符,ffmpeg 将无法找到文件。