我有个问题
我有重命名命令,但是我从 00 开始运行重命名后,如何从 01 开始,请帮帮我
这是我使用的命令
for i in *.mkv; do
new=$(printf "Movie - %02d.mkv" "$a")
mv -i -- "$i" "$new"
let a=a+1
done
答案1
a=1
简单来说就是在开头添加一个变量( ):
#!/bin/bash
a=1
for i in *.mkv; do
new=$(printf "Movie - %02d.mkv" "$a")
mv -i -- "$i" "$new"
let a=a+1
done
以下是您所要求的一行:
a=1; for i in *.mkv; do new=$(printf "Movie - %02d.mkv" "$a"); mv -i -- "$i" "$new"; let a=a+1; done
答案2
也可以用 bash 的算术评估也一样。而且它通常比let
内置的更受欢迎。
例如,
#!/bin/bash
a=1
for i in *.mkv; do
new=$(printf "Movie - %02d.mkv" "$a")
mv -i -- "$i" "$new"
((a++))
done
另一方面,如果您更喜欢单行命令,rename
则命令可以执行以下操作:
rename 's/\d+/sprintf("Movie - %02d", $&)/e' *.mkv