ฉันจะเปลี่ยนชื่อชุดของชื่อไฟล์ใน Linux ได้อย่างไร


9

ฉันมีโฟลเดอร์ที่มีรูปภาพชื่อ:

pic001-2.png
pic002-2.png
pic003-2.png 

ฉันจะเปลี่ยนชื่อพวกเขาเป็นดังต่อไปนี้ได้อย่างไร

pic001.png
pic002.png
pic003.png 

ฉันพยายามแล้วmv "pic*-2.png" "pic*.png"แต่ได้รับข้อผิดพลาด

คำตอบ:


11

วิธีนี้จะลบชื่อแรกที่-2พบในแต่ละชื่อไฟล์:

for f in pic*-2.png; do
  mv "$f" "${f/-2/}"
done

เพื่อทดสอบเพียงย่อหน้าechoไปmvสาย


9

คุณต้องการคำสั่ง 'เปลี่ยนชื่อ' อย่างเหมาะสม!

ลองสิ่งนี้:

rename 's/(pic\d+)-\d\.jpg/$1.jpg/' pic*.jpg

มันต้องมีการแสดงออกปกติ Perl เป็นอาร์กิวเมนต์แรกดังนั้นตัวเลือกการจับคู่รูปแบบและการจัดการของคุณค่อนข้างกว้างขวาง ดูรายละเอียดแบบเต็มได้ที่ man page (1)

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