大家好,有人能帮我吗?我想从多个 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即使是初学者也相当简单。