ฉันมีโฟลเดอร์ที่มีรูปภาพชื่อ:
pic001-2.png
pic002-2.png
pic003-2.png
ฉันจะเปลี่ยนชื่อพวกเขาเป็นดังต่อไปนี้ได้อย่างไร
pic001.png
pic002.png
pic003.png
ฉันพยายามแล้วmv "pic*-2.png" "pic*.png"
แต่ได้รับข้อผิดพลาด
ฉันมีโฟลเดอร์ที่มีรูปภาพชื่อ:
pic001-2.png
pic002-2.png
pic003-2.png
ฉันจะเปลี่ยนชื่อพวกเขาเป็นดังต่อไปนี้ได้อย่างไร
pic001.png
pic002.png
pic003.png
ฉันพยายามแล้วmv "pic*-2.png" "pic*.png"
แต่ได้รับข้อผิดพลาด
คำตอบ:
วิธีนี้จะลบชื่อแรกที่-2
พบในแต่ละชื่อไฟล์:
for f in pic*-2.png; do
mv "$f" "${f/-2/}"
done
เพื่อทดสอบเพียงย่อหน้าecho
ไปmv
สาย
คุณต้องการคำสั่ง 'เปลี่ยนชื่อ' อย่างเหมาะสม!
ลองสิ่งนี้:
rename 's/(pic\d+)-\d\.jpg/$1.jpg/' pic*.jpg
มันต้องมีการแสดงออกปกติ Perl เป็นอาร์กิวเมนต์แรกดังนั้นตัวเลือกการจับคู่รูปแบบและการจัดการของคุณค่อนข้างกว้างขวาง ดูรายละเอียดแบบเต็มได้ที่ man page (1)