如何在 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 /'