กลุ่มการดักจับจะถูกละเว้นเมื่อทำการเปลี่ยนชื่อไฟล์


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การทำงานไม่ถูกต้อง

ไชโยและขอบคุณสำหรับความช่วยเหลือใด ๆ ที่คุณสามารถให้ฉัน

คำตอบ:


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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.