如何通过切换文件名中的字符串顺序来重命名文件?

如何通过切换文件名中的字符串顺序来重命名文件?

我觉得标题不太清楚,英语不是我的母语,抱歉。但我希望你能通过一个例子明白我的意思。我有很多这样的文件:

(作曲家姓名) 歌曲名称 - 艺术家姓名.ext

常量是括号和连字符。

我想重命名为艺术家姓名 - 歌曲名称 (作曲家姓名).ext

我查看了重命名手册和此处以及网络上其他地方的示例,但无济于事。这可能吗?有哪位 bash 大师能帮助我吗?

提前致谢。

答案1

我建议mmv(从同名包中)使用任何命令来完成rename这类事情:

$ mmv -n '(*) * - *.*' '#3 - #2 (#1).#4'
(Name of Composer) Title of song - Name of artist.ext -> Name of artist - Title of song (Name of Composer).ext

rename如果你只能使用基于 Perl 的

$ rename -n 's/^\((.*?)\) (.*?) - (.*?)\.(.*)$/$3 - $2 ($1).$4/' *.*
rename((Name of Composer) Title of song - Name of artist.ext, Name of artist - Title of song (Name of Composer).ext)

无论哪种情况,-n一旦您对建议的转换感到满意,就将其删除。

相关内容