ฉันเคยเปลี่ยนชื่อไฟล์ใน Linux ผ่านคำสั่งเปลี่ยนชื่อ:
rename 's/old_pattern/new_pattern/g' *glob
มีบางอย่างที่คล้ายกันใน Mac OS X (Snow Leopard) หรือไม่
ฉันเคยเปลี่ยนชื่อไฟล์ใน Linux ผ่านคำสั่งเปลี่ยนชื่อ:
rename 's/old_pattern/new_pattern/g' *glob
มีบางอย่างที่คล้ายกันใน Mac OS X (Snow Leopard) หรือไม่
คำตอบ:
ด้วยHomebrewผู้จัดการบรรจุภัณฑ์สำหรับ OS X:
brew install rename
จากนั้นคุณสามารถเรียกใช้rename
คำสั่งเดียวกับใน Linux
rename-5.22
(โดยที่ 22 คือรุ่นที่ติดตั้ง) แทนที่จะเป็นrename
sudo mv /opt/local/bin/rename-XXX /opt/local/bin/rename
ใช้พลังของ ZSH อย่างชาญฉลาด (พิมพ์zsh
เทอร์มินัลหากคุณเป็นหนึ่งในจิตวิญญาณที่ไม่ดีซึ่งไม่ได้ใช้งานโดยค่าเริ่มต้น):
autoload zmv
zmv '(*).htm' '$1.html'
ZMV ดังนี้ไวยากรณ์ MMV
*user*.html
ให้เปลี่ยนนามสกุลเป็น.html
และเปลี่ยนทุกสิ่งที่เกิดขึ้นrc
เป็นfinal
: zmv '(*user*).htm' '${1//rc/final}.html'
@ghoppe: ฉันคิดว่าตัวอย่างzmvในความต้องการคำตอบ-w
หรือวงเล็บรอบสัญลักษณ์ตัวแทน
*
แทน.*
รับทั้งหมด ดูเหมือนว่าจะทำงานเหมือนไม่โลภ*?
.*?
2) สำหรับฉัน^
และ$
สำหรับจุดเริ่มต้นและจุดสิ้นสุดของสตริงดูเหมือนจะทำให้มันตรงกับไม่มีอะไร
เงอะงะฉัน:
for i in *.yourfiles; do mv "$i" "`echo $i | sed 's/old/new/g'`"; done
และถ้าคุณต้องการใช้มันอย่างที่ฉันทำบ่อย ๆ ด้วยวิธีนี้:
rename 's/old/new/' *.files
ฉันแนะนำให้ใช้สคริปต์ litte นี้ใน ~ / bin / rename:
#!/usr/bin/env zsh
SUBSEXPR=$1
shift
for i in $@; do mv $i `echo "$i" | sed $SUBSEXPR`; done
คุณสามารถลองติดตั้งMacPortsและติดตั้งrenameutils
แพคเกจ:
renameutils @ 0.10.0 (sysutils)
renameutils เป็นชุดของโปรแกรมที่ออกแบบมาเพื่อทำให้การเปลี่ยนชื่อไฟล์เร็วขึ้นและยุ่งยากน้อยลง
qmv
ดูเหมือนว่ามันจะทำงาน
qmv
เป็นเครื่องมือที่ดีในขณะที่บิตทำงานมากเกินไปสำหรับ regex ง่ายเปลี่ยนชื่อมันเป็นที่ยอดเยี่ยมสำหรับการตั้งชื่ออย่างชาญฉลาดและการเคลื่อนย้ายตัวเลขใหญ่ของไฟล์โดยพลการ
มีรุ่นต่างๆของการมีการเปลี่ยนชื่อ ดูเหมือนว่าคุณกำลังมองหา Perl-based
ยูทิลิตี้หนึ่งเวอร์ชันนี้มาพร้อมกับโมดูลFile :: Rename Perl sudo cpan -i File::Rename
คุณสามารถติดตั้งได้กับสิ่งที่ต้องการ
หรือคุณอาจจะไปกับการเปลี่ยนชื่อจาก Debian ของPerlแพคเกจ มันเป็นเพียงไฟล์เดียวที่จะดาวน์โหลด วางไว้ในตำแหน่งที่คุณต้องการและchmodเพื่อให้สามารถเรียกใช้งานได้
ทางเลือกที่เป็นzmvเครื่องมือที่มาพร้อมกับ zsh มันไม่ได้มีไวยากรณ์เดียวกัน แต่มันมาพร้อมกับระบบปฏิบัติการของคุณและมันสามารถดูแลกรณีทั่วไปจำนวนมากได้อย่างง่ายดาย
ใน Macs ฉันใช้ Aristotle Pagaltzis ที่มีให้ฟรีrename
ซึ่งเหมือนกับ Debian's คือ Perl คุณจะได้รับที่นี่ หรือเยี่ยมชมที่นี่เพื่ออ่านก่อน - เป็นความคิดที่ดีเสมอ
คุณต้องวางมันไว้ที่ไหนสักแห่งในนั้น$PATH
และทำให้มันใช้งานได้ ( chmod +x rename
) จากนั้นคุณก็พร้อมที่จะไป
สิ่งนี้ไม่ควรยาก แต่เห็นได้ชัดว่ามันคือ ตัวอย่างฉันต้องการเปลี่ยนชื่อนามสกุลไฟล์ทั้งหมดจาก aiff เป็น aifc
find . -iname "*.aiff" -exec bash -c 'mv "$0" "${0%\.aiff}.aifc"' {} \;
หากคุณกำลังมองหา GUI ลองชื่อ Mangler มันมีคุณสมบัติ "ดูตัวอย่าง" ที่แสดงสิ่งที่จะเกิดขึ้นหากคุณทำตามด้วยการเปลี่ยนชื่อ
คำสั่งที่เทียบเท่าในการเปลี่ยนชื่อ (ข้ามแพลตฟอร์ม) คือ
$ renamer --regex --find 'old_pattern' --replace 'new_pattern' *glob
ถ้าคุณชอบการเลือกหลายข้อความของ Sublime Text คุณสามารถใช้กับ qmv:
qmv --editor = ไฟล์ "/ usr / bin / s3 -w"
ฉันเพิ่งไปข้างหน้าและพบสิ่งที่ฉันโปรดปรานที่ฉันเคยเห็นเรียกว่าชื่อ Perl ให้เปลี่ยนrename
คำสั่งที่ช่วยมีลักษณะเช่นนี้:
Usage: rename [-v] [-n] [-f] perlexpr [filenames]
นั่นเป็นวิธีที่ฉันรู้ว่าฉันได้รับสิ่งที่ฉันชอบ
สำหรับ Mac แม้ใน Homebrew พวกเขาจะมีคนอื่น ๆ ที่ฉันเพิ่งจำได้ว่ามีปัญหา ดังนั้นมันไม่ใช่rename
แพ็คเกจและไม่ใช่renameutils
แพ็คเกจnongnu เช่นกัน
รับจากที่นี่และทำการติดตั้งตามที่ระบุไว้: https://github.com/subogero/rename
rename
บน Mac OS X: macosxhints.com/article.php?story=20050630022203488