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


10

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

##。##-文件名.mp4

我想将它们重命名为:

s ## e ##。mp4

这是我想出的:

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

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

因此,看起来好像这些组被忽略或未插入,或者沿着这些行。我是否错过了令人眼花obvious乱的明显事物,或者还有其他事情发生?

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

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

Answers:


14

我认为您使用双引号可能会使外壳扩展$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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.