ファイル名を変更するときにキャプチャグループが無視される


10

この形式のファイルがいくつかあります。

##。##-ファイル名.mp4

名前を変更したい:

s ## e ##。mp4

これは私が思いついたものです:

名前の変更-n "s / ^(\ d {2})\。(\ d {2})。* / s $ 1e $ 2.mp4 /"

http://regexr.com/でテストすると機能しますが、Ubuntu 12.04インストールでコマンドを実行すると、すべてのファイルの名前がに変更されますse.mp4

したがって、グループが無視されているか、挿入されていないか、それらの線に沿って何かが表示されています。私は盲目的に明白な何かを見逃していますか、それとも何か他のことが起こっていますか?

私はpyRenamerを使用してしまい、それrenameはうまく機能しましたが、なぜそれが正しく機能していないのかを知りたいのです。

どうぞよろしくお願いいたします。


あなたはs1e1.m4、s1e2.mp4を意味します
nux

回答:


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

それでおしまい!あなたはサー、天才です。
0x0049 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.