Shell
如何使用重命名命令來修復這些文件名?
我正在嘗試更改看起來像的文件
01 Track name.mp3
進入
01 - Track name.mp3
到目前為止,我徒勞的嘗試是
rename '0. ' '$&- ' *.mp3 rename 's/0. /$&- /' *.mp3 rename '/0. /' '/$&- /' *.mp3 rename 's/0.\ /$&-\ /' *.mp3 rename 's/0.\ /$1-\ /' *.mp3
假設 perl
rename
命令:您與最後一個命令非常接近。
rename 's/(0.) /$1 - /' *.mp3
會工作。不需要轉義空格,它們在正則表達式中沒有特殊含義(它們在文件名中有意義,但在這裡無關緊要),並且您需要在要重用的部分周圍加上括號。
它必須使用
rename
命令嗎?$ ls 01 Track name.mp3 02 Track name.mp3 03 Track name.mp3 $ for a in *.mp3 > do > mv -i "$a" "${a%% *} - ${a#* }" > done $ ls 01 - Track name.mp3 02 - Track name.mp3 03 - Track name.mp3