Tôi đã sử dụng để đổi tên tệp trong Linux thông qua lệnh đổi tên:
rename 's/old_pattern/new_pattern/g' *glob
Có điều gì tương tự trong Mac OS X (Snow Leopard) không?
Tôi đã sử dụng để đổi tên tệp trong Linux thông qua lệnh đổi tên:
rename 's/old_pattern/new_pattern/g' *glob
Có điều gì tương tự trong Mac OS X (Snow Leopard) không?
Câu trả lời:
Với Homebrew , trình quản lý gói cho OS X:
brew install rename
Sau đó, bạn có thể chạy các rename
lệnh tương tự như trong Linux.
rename-5.22
(trong đó 22 là phiên bản đã cài đặt) thay vìrename
sudo mv /opt/local/bin/rename-XXX /opt/local/bin/rename
Sử dụng sức mạnh của ZSH một cách khôn ngoan (nhập zsh
vào thiết bị đầu cuối nếu bạn là một trong những linh hồn đáng thương không sử dụng nó theo mặc định):
autoload zmv
zmv '(*).htm' '$1.html'
ZMV tuân theo cú pháp MMV .
*user*.html
, thay đổi tiện ích mở rộng thành .html
và thay đổi tất cả các lần xuất hiện rc
thành final
: zmv '(*user*).htm' '${1//rc/final}.html'
@ghoppe: Tôi nghĩ ví dụ zmv trong câu trả lời của bạn cần -w
hoặc dấu ngoặc đơn quanh ký tự đại diện.
*
thay vì .*
để có được tất cả. *?
dường như làm việc như không tham lam .*?
. 2) đối với tôi, ^
và $
bắt đầu và kết thúc chuỗi dường như khiến nó không khớp với nhau
Vụng về tôi:
for i in *.yourfiles; do mv "$i" "`echo $i | sed 's/old/new/g'`"; done
Và nếu bạn muốn sử dụng nó như tôi thường làm theo cách này:
rename 's/old/new/' *.files
Tôi khuyên bạn nên sử dụng tập lệnh litte này trong ~ / bin / đổi tên:
#!/usr/bin/env zsh
SUBSEXPR=$1
shift
for i in $@; do mv $i `echo "$i" | sed $SUBSEXPR`; done
Bạn có thể thử cài đặt MacPorts và cài đặt renameutils
gói:
renameutils @ 0.10.0 (sysutils)
renameutils là một bộ các chương trình được thiết kế để làm cho việc đổi tên tệp nhanh hơn và ít cồng kềnh hơn
qmv
có vẻ như nó làm công việc
qmv
là một công cụ tuyệt vời, trong khi có quá nhiều công việc để đổi tên regex đơn giản, thật tuyệt vời khi đặt tên thông minh và di chuyển số lượng lớn các tệp tùy ý
Có nhiều phiên bản đổi tên . Có vẻ như bạn đang tìm kiếm một cái dựa trên Perl.
Một phiên bản của tiện ích này đi kèm với mô-đun File :: Rename Perl. Bạn có thể cài đặt nó với một cái gì đó như sudo cpan -i File::Rename
.
Hoặc, bạn có thể đổi tên từ gói perl của Debian . Nó chỉ là một tập tin duy nhất để tải về. Đặt nó bất cứ nơi nào bạn thích và chmod nó để nó có thể thực thi được.
Một thay thế là công cụ zmv đi kèm với zsh . Nó không có cùng một cú pháp, nhưng nó đi kèm với hệ điều hành của bạn và nó có thể dễ dàng xử lý nhiều trường hợp phổ biến.
Trên máy Mac, tôi sử dụng Aristotle Pagaltzis có sẵn miễn phí rename
, giống như Debian dựa trên Perl. Bạn có thể lấy nó ở đây . Hoặc truy cập vào đây để đọc nó đầu tiên - luôn luôn là một ý tưởng tốt.
Bạn cần đặt nó ở đâu đó trong bạn $PATH
và làm cho nó có thể thực thi được ( chmod +x rename
) và sau đó bạn tốt để đi.
Điều này không nên khó khăn nhưng rõ ràng là như vậy. Ví dụ, tôi muốn đổi tên tất cả phần mở rộng của tệp từ aiff thành aifc.
find . -iname "*.aiff" -exec bash -c 'mv "$0" "${0%\.aiff}.aifc"' {} \;
Nếu bạn đang tìm kiếm một GUI, hãy thử Name Mangler . Nó có tính năng "xem trước" cho biết điều gì sẽ xảy ra nếu bạn thực hiện theo cách đổi tên.
Nếu bạn thích đa văn bản của Sublime Text, bạn có thể sử dụng nó với qmv:
tập tin qmv --editor = "/ usr / bin / s3 -w"
Tôi chỉ đi trước và tìm thấy yêu thích của tôi mà tôi đã thấy được gọi là perl-rename đưa ra rename
lệnh trong đó sự trợ giúp trông như thế này:
Usage: rename [-v] [-n] [-f] perlexpr [filenames]
Đó là cách tôi biết tôi có thứ tôi thích.
Đối với Mac, ngay cả trong Homebrew họ cũng có những người khác mà tôi chỉ nhớ mơ hồ gặp sự cố. Vì vậy, nó không phải là rename
gói, và nó cũng không phải là renameutils
gói nongnu .
Có nó từ đây và chỉ cần cài đặt như họ đề cập: https://github.com/subogero/rename
rename
trên Mac OS X: macosxhints.com/article.php?story=20050630022203488