หน้าคนให้สองตัวอย่าง:
rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *
มันก็คือ s หรือ y แล้วก็ /replaceThis/withThis
ผู้นำและ y หมายถึงอะไร? มีตัวเลือกอื่น ๆ อีกไหม?
หน้าคนให้สองตัวอย่าง:
rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *
มันก็คือ s หรือ y แล้วก็ /replaceThis/withThis
ผู้นำและ y หมายถึงอะไร? มีตัวเลือกอื่น ๆ อีกไหม?
คำตอบ:
ในกรณีแรก:
rename 's/\.bak$//' *.bak
คุณกำลังเรียกใช้นิพจน์ปกติกับชื่อไฟล์และแทนที่ส่วนที่ตรงกันของนิพจน์ (.bak ท้ายชื่อไฟล์) ด้วยนิพจน์ที่สอง (ซึ่งว่างเปล่า)
ในกรณีที่สอง:
rename 'y/A-Z/a-z/' *
คุณกำลังจับคู่กับพื้นที่รูปแบบการแสดงออกปกติและทับศัพท์ไปยังเป้าหมาย กล่าวอีกนัยหนึ่งช่วง AZ จะเปลี่ยนเป็นช่วง az ทำให้ชื่อไฟล์เป็นตัวพิมพ์เล็ก
ผมขอแนะนำให้คุณดูหน้าคนสำหรับsedสำหรับคำสั่งเพิ่มเติมและรายละเอียดเพิ่มเติม ฉันเชื่อว่าคำสั่ง 'ใช้บ่อยที่สุด นอกจากนี้regex (ส่วนที่ 7)และเอกสาร Perl อาจช่วยได้เช่นกัน โดยเฉพาะอย่างยิ่งต่อไปนี้เป็นบทแนะนำเกี่ยวกับ Perl และนิพจน์ทั่วไป
จากman sed
:
S / regexp / ทดแทน / พยายามจับคู่ regexp กับพื้นที่รูปแบบ หากสำเร็จ ‐ เต็มแทนที่ส่วนที่ตรงกับการเปลี่ยน การแทนที่อาจมีอักขระพิเศษ & เพื่ออ้างถึง ส่วนของพื้นที่รูปแบบที่จับคู่และพิเศษ หนี \ 1 ถึง \ 9 เพื่ออ้างถึงการจับคู่ที่ตรงกัน นิพจน์ย่อยใน regexp Y / แหล่งที่มา / / ปลายทาง แปลอักขระในพื้นที่รูปแบบที่ปรากฏ ในแหล่งที่มาของตัวละครที่สอดคล้องกันในปลายทาง