重命名文件时忽略捕获组

0x0*_*049 13 regex rename 12.04

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

##.## - 文件名.mp4

我想将它们重命名为:

s##e##.mp4

这就是我想出的:

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

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

所以看起来这些组被忽略或没有插入或沿着这些线的东西。我是否遗漏了一些非常明显的东西,还是有其他事情正在发生?

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

干杯,感谢你能给我的任何帮助。

ste*_*ver 18

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

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

而在重命名表达式周围使用单引号

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