Shell

如何使用重命名命令來修復這些文件名?

  • June 22, 2016

我正在嘗試更改看起來像的文件

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

假設 perlrename命令:

您與最後一個命令非常接近。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

引用自:https://unix.stackexchange.com/questions/291118