重命名文件时捕获组将被忽略

重命名文件时捕获组将被忽略

我有许多这种格式的文件:

##.##——文件名.mp4

我想将它们重命名为:

s###e###.mp4

这就是我想出的:

重命名 -n "s/^(\d{2})\.(\d{2}).*/s$1e$2.mp4/"

当我测试它时它有效http://regexr.com/但是当我在 Ubuntu 12.04 安装上运行命令时,所有文件都被重命名为se.mp4

因此,看起来这些组被忽略了或没有插入,或者类似情况。我是否忽略了一些显而易见的事情,还是发生了其他事情?

我最终使用了 pyRenamer,效果非常好,但我仍然想知道为什么rename它不能正常工作。

欢呼并感谢您给予我的任何帮助。

答案1

我认为也许你使用双引号允许 shell 扩展$1$2

$ rename -nv "s/^(\d{2})\.(\d{2}).*/s$1e$2.mp4/" *.mp4
12.34 File name.mp4 renamed as se.mp4

而重命名表达式用单引号引起来

$ rename -nv 's/^(\d{2})\.(\d{2}).*/s$1e$2.mp4/' *.mp4
12.34 File name.mp4 renamed as s12e34.mp4

相关内容