Backticks tidak muncul dalam komentar Anda - Anda mungkin harus menambahkan ini sebagai jawaban atau mengedit pertanyaan Anda untuk memasukkan solusi Anda.
Paul R
1
Solusi cepat terbaik yang pernah saya temukan telah menggunakan Automator bawaan. Lihatlah artikel ini untuk bantuan langkah demi langkah yang mudah: tuaw.com/2008/11/11/…
nilay
Saya akan memilih jawaban nilay jika itu bukan komentar ...
tetapi apakah itu juga memungkinkan penggantian regex? Ini tampaknya hanya semacam semacam shell globbing yang disempurnakan.
matematika
4
@brubelsabs: Ya, zmv dapat melakukan penggantian regexp . Untuk file yang cocok *user*.html, ubah ekstensi menjadi .htmldan ubah semua kemunculan rcke final: zmv '(*user*).htm' '${1//rc/final}.html' @ghoppe: Saya pikir contoh zmv dalam kebutuhan jawaban Anda -watau tanda kurung di sekitar wildcard-nya.
Chris Johnsen
Saya sangat suka saran ini karena Anda tidak perlu menginstal apa pun tambahan pada Mac (seperti minuman), tetapi itu memungkinkan Anda untuk menggunakan mmv mudah seperti sintaks.
Hay
+1 Bagus. Beberapa perbedaan dari regex saya terbiasa: 1) menggunakan *alih-alih .*mendapatkan semua. *?tampaknya bekerja seperti orang yang tidak tamak .*?. 2) untuk saya, ^dan $untuk memulai dan mengakhiri string sepertinya tidak cocok dengan apa pun
user56reinstatemonica8
21
Kikuk saya:
for i in *.yourfiles; do mv "$i" "`echo $i | sed 's/old/new/g'`"; done
Dan jika Anda ingin menggunakannya seperti yang sering saya lakukan dengan cara ini:
rename 's/old/new/' *.files
Saya merekomendasikan untuk menggunakan skrip litte ini di ~ / bin / rename:
#!/usr/bin/env zsh
SUBSEXPR=$1
shift
for i in $@; do mv $i `echo "$i" | sed $SUBSEXPR`; done
skrip Anda tidak berfungsi untuk saya "rename ACDC AC-DC ACDC *" result-> "ssed: tidak dapat membaca ACDC: Tidak ada file atau direktori", saya menginstal rename util dari linux dan sekarang berfungsi lagi
holms
5
Anda dapat mencoba menginstal MacPorts dan menginstal renameutilspaket:
renameutils @ 0.10.0 (sysutils)
renameutils adalah seperangkat program yang dirancang untuk membuat pengubahan nama file lebih cepat dan tidak rumit
saya tidak mengatakan itu. qmvSepertinya itu berhasil.
lajuette
qmvadalah alat yang hebat, sementara sedikit terlalu banyak bekerja untuk penggantian nama regex sederhana, itu fantastis untuk penamaan cerdas dan memindahkan sejumlah besar file sewenang-wenang
sapht
4
Ada berbagai versi rename . Sepertinya Anda mencari yang berbasis Perl.
Satu versi utilitas ini dilengkapi dengan modul File :: Rename Perl. Anda dapat menginstalnya dengan sesuatu seperti sudo cpan -i File::Rename.
Atau, Anda bisa pergi dengan mengganti nama dari paket perl Debian . Ini hanya satu file untuk diunduh. Letakkan di mana saja Anda suka dan chmod sehingga dapat dieksekusi.
Alternatifnya adalah alat zmv yang dilengkapi dengan zsh . Ini tidak memiliki sintaks yang sama, tetapi ia datang dengan OS Anda dan dapat dengan mudah menangani banyak kasus umum.
yang perl mengubah nama adalah apa pertanyaan ini menunjukkan sebagai contoh.
quack quixote
2
Pada Mac saya menggunakan Aristoteles Pagaltzis yang tersedia secara gratis rename, yang seperti Debian berbasis Perl. Anda bisa mendapatkannya di sini . Atau kunjungi di sini untuk membacanya dulu - selalu ide yang bagus.
Anda perlu menempatkannya di suatu tempat di dalam Anda $PATHdan membuatnya dapat dieksekusi ( chmod +x rename) dan kemudian Anda siap melakukannya.
Saya hanya pergi ke depan dan menemukan favorit saya yang saya lihat disebut perl-rename memberikan renameperintah di mana bantuan terlihat seperti ini:
Usage: rename [-v] [-n] [-f] perlexpr [filenames]
Begitulah cara saya tahu saya mendapatkan yang saya sukai.
Untuk Mac, bahkan di Homebrew mereka memiliki orang lain di mana saya samar-samar ingat mengalami masalah. Jadi bukan renamepaket, dan bukan renameutilspaket nongnu juga.
rename
di Mac OS X: macosxhints.com/article.php?story=20050630022203488Jawaban:
Dengan Homebrew , manajer paket untuk OS X:
Kemudian Anda dapat menjalankan
rename
perintah yang sama seperti di Linux.sumber
rename-5.22
(di mana 22 adalah versi yang diinstal) alih-alihrename
sudo mv /opt/local/bin/rename-XXX /opt/local/bin/rename
Gunakan kekuatan ZSH dengan bijak (ketik
zsh
di terminal jika Anda adalah salah satu dari jiwa-jiwa miskin yang tidak menggunakannya secara default):ZMV mengikuti sintaks MMV .
sumber
*user*.html
, ubah ekstensi menjadi.html
dan ubah semua kemunculanrc
kefinal
:zmv '(*user*).htm' '${1//rc/final}.html'
@ghoppe: Saya pikir contoh zmv dalam kebutuhan jawaban Anda-w
atau tanda kurung di sekitar wildcard-nya.*
alih-alih.*
mendapatkan semua.*?
tampaknya bekerja seperti orang yang tidak tamak.*?
. 2) untuk saya,^
dan$
untuk memulai dan mengakhiri string sepertinya tidak cocok dengan apa punKikuk saya:
Dan jika Anda ingin menggunakannya seperti yang sering saya lakukan dengan cara ini:
Saya merekomendasikan untuk menggunakan skrip litte ini di ~ / bin / rename:
sumber
Anda dapat mencoba menginstal MacPorts dan menginstal
renameutils
paket:sumber
qmv
Sepertinya itu berhasil.qmv
adalah alat yang hebat, sementara sedikit terlalu banyak bekerja untuk penggantian nama regex sederhana, itu fantastis untuk penamaan cerdas dan memindahkan sejumlah besar file sewenang-wenangAda berbagai versi rename . Sepertinya Anda mencari yang berbasis Perl.
Satu versi utilitas ini dilengkapi dengan modul File :: Rename Perl. Anda dapat menginstalnya dengan sesuatu seperti
sudo cpan -i File::Rename
.Atau, Anda bisa pergi dengan mengganti nama dari paket perl Debian . Ini hanya satu file untuk diunduh. Letakkan di mana saja Anda suka dan chmod sehingga dapat dieksekusi.
Alternatifnya adalah alat zmv yang dilengkapi dengan zsh . Ini tidak memiliki sintaks yang sama, tetapi ia datang dengan OS Anda dan dapat dengan mudah menangani banyak kasus umum.
sumber
Pada Mac saya menggunakan Aristoteles Pagaltzis yang tersedia secara gratis
rename
, yang seperti Debian berbasis Perl. Anda bisa mendapatkannya di sini . Atau kunjungi di sini untuk membacanya dulu - selalu ide yang bagus.Anda perlu menempatkannya di suatu tempat di dalam Anda
$PATH
dan membuatnya dapat dieksekusi (chmod +x rename
) dan kemudian Anda siap melakukannya.sumber
Ini seharusnya tidak sulit tetapi ternyata memang demikian. Contoh, saya ingin mengganti nama semua ekstensi file dari aiff ke aifc.
sumber
Jika Anda mencari GUI, coba Name Mangler . Ini memiliki fitur "pratinjau" yang menunjukkan apa yang akan terjadi jika Anda mengikuti penggantian nama.
sumber
perintah setara dalam renamer (cross-platform) adalah
sumber
Jika Anda suka multiseleksi Sublime Text, Anda bisa menggunakannya dengan qmv:
sumber
Saya hanya pergi ke depan dan menemukan favorit saya yang saya lihat disebut perl-rename memberikan
rename
perintah di mana bantuan terlihat seperti ini:Usage: rename [-v] [-n] [-f] perlexpr [filenames]
Begitulah cara saya tahu saya mendapatkan yang saya sukai.
Untuk Mac, bahkan di Homebrew mereka memiliki orang lain di mana saya samar-samar ingat mengalami masalah. Jadi bukan
rename
paket, dan bukanrenameutils
paket nongnu juga.Dapatkan dari sini dan baru saja menginstal seperti yang mereka sebutkan: https://github.com/subogero/rename
sumber