我想使用bash重命名多个文件
如果文件名包含01
,我想在文件名的开头附加1
,依此类推。
文件名:
Old Movie-01.mp4
New Movie-02.mp4
Clip From-before-03.mp4
Clip Old-before-04.mp4
期望的结果:
1 Old Movie-01.mp4
2 New Movie-02.mp4
3 Clip From-before-03.mp4
4 Clip Old-before-04.mp4
答案 0 :(得分:5)
for file in *.mp4; do
[[ $file =~ 0*([0-9]+)\.mp4$ ]] && mv -- "$file" "${BASH_REMATCH[1]} $file"
done
BASH_REMATCH
是一个特殊数组,其中[[ ... =~ ... ]]
的匹配项已分配给。