批量重命名多个 mp3 并删除前导数字

批量重命名多个 mp3 并删除前导数字

大家好,有人能帮我吗?我想从多个 mp3 文件中去掉前导数字,这样“01 some_file.mp3”就会变成“some_file.mp3”,如果有人能告诉我如何使用 zmv 来做这件事就太好了

答案1

类似这样的脚本可能会起作用:

for f in *; do
    mv "$f" "${f:3}"
done

这将删除文件名的前 3 个字符(两个数字和空格)。

或者像这样:

for f in *; do
    mv "$f" "$(printf "$f" | cut -d' ' -f2-)"
done

如果数字和名称的其余部分之间确实有空格。这将打印从空格到文件末尾的所有内容。

请注意,这仅适用于固定数量的数字(第一个例子)或两者之间有实际空格的情况字段(第二个例子),如果该情况不适用于任何提到的解决方案,您仍然可以依靠正则表达式匹配:

for f in *; do
    mv "$f" "$(printf "$f" | sed s/[[:digit:]]*\ *//)"
done

这对于任意数量的前导数字和/或空格都有效。例如:

echo '0001     hellow  aasa 1212.mp3' | sed s/[[:digit:]]*\ *//

将打印

hellow  aasa 1212.mp3

答案2

zmv 对我来说看起来很复杂。我使用pyRenamer即使是初学者也相当简单。

相关内容