การเปลี่ยนชื่อหลาย ๆ ไฟล์โดยการเพิ่มสตริงไปยังจุดเริ่มต้น


21

ประมาณ 200 ไฟล์ในไดเรกทอรีฉันต้องการเพิ่ม String 1_ไปยังจุดเริ่มต้นของชื่อไฟล์ทั้งหมด

ชื่อไฟล์เป็นตัวอย่างและผลที่ควรจะเป็นDATASET_X_Y_Z1_DATASET_X_Y_Z

ฉันไม่รู้อะไรเกี่ยวกับการเขียนสคริปต์ของเชลล์ แต่อาจมีซับในหนึ่งชุดสำหรับเทอร์มินัล



@Rinzwind ลิงก์เกี่ยวกับคำถามอื่น คำถาม Macydanim นั้นเกี่ยวกับการเพิ่มสตริงลงในชื่อไฟล์ไม่ใช่ไปที่ไฟล์เนื้อหา
jc

คำตอบ:


38
  • rename 's/^/1_/' * สำหรับการเปลี่ยนชื่อไฟล์ทั้งหมดในไดเรกทอรีปัจจุบัน

หรือ

  • rename 's/^/1_/' DATASET*สำหรับการเปลี่ยนชื่อไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันเริ่มต้นด้วยDATASETชื่อของพวกเขา

คำอธิบาย: นิพจน์s/^/1_/บอกว่า: "แทนที่จุดเริ่มต้นของชื่อไฟล์ (นั่นหมายถึงสัญลักษณ์นี้ -> ^) 'ด้วย1_"


หากคุณrenameไม่ได้ทำสิ่งนี้นอกกรอบคุณจะต้องติดตั้งprename(เปลี่ยนชื่อ PERL)
user1359

14

คุณสามารถเปลี่ยนชื่อไฟล์ทั้งหมดในการพิมพ์ไดเรกทอรีปัจจุบันได้อย่างง่ายดาย (สมมติว่าคุณกำลังใช้ bash):

for i in *; do mv "$i" 1_"$i"; done

เห็นได้ชัดว่าใช้มันด้วยความระมัดระวัง มันจะ remane ไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันที่ 'มองเห็นได้' (ชื่อไฟล์ที่ไม่ได้ขึ้นต้นด้วย '.')


นี่เป็นทางออกที่ถูกต้องครั้งแรกที่ฉันพบซึ่งสามารถใช้สำหรับการต่อท้ายสิ่งที่ต้องการเช่น.csvชุดย่อยของไฟล์ที่มีการแสดงออกป่าเปลี่ยนบัตรแทน*การย่อยของไฟล์ที่มีการแสดงออกบัตรเปลี่ยนแปลงป่าแทน+1
Zelphir Kaltstahl

ว้าว! วนซ้ำกับ CLI! นี่คือใหม่ :)
Raymond Wachaga

9

คุณสามารถใช้pyRenamer สามารถพบได้ในศูนย์ซอฟต์แวร์อูบุนตู ป้อนคำอธิบายรูปภาพที่นี่ รูปแบบไฟล์ดั้งเดิมควรเป็น {X} และรูปแบบไฟล์ที่เปลี่ยนชื่อควรเป็น 1_ {1}


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