重命名文件以将版本号从末尾移至开头

重命名文件以将版本号从末尾移至开头

如何在 Linux 中重命名文件并从末尾取出版本号并将其移至开头。例如,我有一个文件名:

Random text - text 1.1 (SD).mp3

1.1 Random text - text.mp3

现在我可以获取版本号但无法将其移动到开头,我有类似的东西:

rename -n 's/(\d{1}\.\d{1}) \(SD\).mp3/$1.mp3/' *.mp3

这让我

Random text - text 1.1.mp3

我尝试添加第二个表达式组来匹配文件的开头,这样我就可以交换开头和结尾,但什么也没有发生

答案1

你的正则表达式应该像这样:

rename -n 's/^(.*)(\d{1}\.\d{1})(.*)$/$2 $1$3/' *.mp3

答案2

以下应该有效:

's/^(.+?) (\d+\.\d+) \(SD\)/$2 $1/'

或者如果你想保留该(SD)部分:

's/^(.+?) (\d+\.\d+) /$2 $1 /'

相关内容