Grup tangkap diabaikan ketika mengganti nama file

10

Saya memiliki sejumlah file dalam format ini:

##. ## - File name.mp4

Saya ingin mengubah nama mereka menjadi:

s ## e ##. mp4

Inilah yang saya pikirkan:

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

Ini berfungsi ketika saya mengujinya di http://regexr.com/ tetapi ketika saya menjalankan perintah pada instalasi Ubuntu 12.04 saya, semua file saya diganti namanya menjadise.mp4

Jadi sepertinya kelompok-kelompok itu diabaikan atau tidak dimasukkan atau sesuatu di sepanjang garis itu. Apakah saya kehilangan sesuatu yang sangat jelas atau ada sesuatu yang terjadi?

Saya akhirnya menggunakan pyRenamer dan itu bekerja dengan sangat baik, tetapi saya masih ingin tahu mengapa renametidak bekerja dengan baik.

Salam dan terima kasih atas bantuan yang bisa Anda berikan kepada saya.

0x0049
sumber

Jawaban:

14

Saya pikir mungkin penggunaan tanda kutip ganda memungkinkan shell berkembang $1dan$2

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

sedangkan dengan tanda kutip tunggal di sekitar mengubah nama ekspresi

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