在开头重命名文件名

时间:2017-12-28 22:43:29

标签: bash shell file-rename

我想使用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

1 个答案:

答案 0 :(得分:5)

for file in *.mp4; do
    [[ $file =~ 0*([0-9]+)\.mp4$ ]] && mv -- "$file" "${BASH_REMATCH[1]} $file"
done

BASH_REMATCH是一个特殊数组,其中[[ ... =~ ... ]]的匹配项已分配给。