Kiedyś zmieniałem nazwę pliku w systemie Linux za pomocą polecenia zmiany nazwy:
rename 's/old_pattern/new_pattern/g' *glob
Czy jest coś podobnego w Mac OS X (Snow Leopard)?
Kiedyś zmieniałem nazwę pliku w systemie Linux za pomocą polecenia zmiany nazwy:
rename 's/old_pattern/new_pattern/g' *glob
Czy jest coś podobnego w Mac OS X (Snow Leopard)?
Odpowiedzi:
W Homebrew menedżer pakietów dla OS X:
brew install rename
Następnie możesz uruchomić te same rename
polecenia, co w systemie Linux.
rename-5.22
(gdzie 22 to zainstalowana wersja) zamiastrename
sudo mv /opt/local/bin/rename-XXX /opt/local/bin/rename
Mądrze używaj mocy ZSH (wpisz zsh
terminal, jeśli jesteś jedną z tych biednych dusz, które domyślnie go nie używają):
autoload zmv
zmv '(*).htm' '$1.html'
ZMV działa zgodnie ze składnią MMV .
*user*.html
zmień rozszerzenie na .html
i zmień wszystkie wystąpienia rc
na final
: zmv '(*user*).htm' '${1//rc/final}.html'
@ghoppe: Myślę, że przykład zmv w twojej odpowiedzi wymaga -w
lub nawiasów otaczających jego symbol wieloznaczny.
*
zamiast .*
uzyskiwać wszystkie. *?
wydaje się działać jak chciwy .*?
. 2) dla mnie ^
i $
na początku i na końcu łańcucha wydawało się, że powoduje, że nic nie pasuje
Niezdarny ja:
for i in *.yourfiles; do mv "$i" "`echo $i | sed 's/old/new/g'`"; done
A jeśli chcesz go używać tak jak ja często w ten sposób:
rename 's/old/new/' *.files
Polecam użyć tego skryptu litte w ~ / bin / rename:
#!/usr/bin/env zsh
SUBSEXPR=$1
shift
for i in $@; do mv $i `echo "$i" | sed $SUBSEXPR`; done
Możesz spróbować zainstalować MacPorts i zainstalować renameutils
pakiet:
renameutils @ 0.10.0 (sysutils)
renameutils to zestaw programów zaprojektowanych w celu przyspieszenia i mniej kłopotliwej zmiany nazw plików
qmv
wygląda na to, że to działa.
qmv
to świetne narzędzie, choć trochę za dużo pracy na proste zmiany wyrażeń regularnych, ale fantastycznie nadaje się do inteligentnego nazywania i przenoszenia dużej liczby dowolnych plików
Istnieją różne wersje zmiany nazwy . Wygląda na to, że szukasz Perla.
Jedna wersja tego narzędzia jest dostarczana z modułem File :: Rename Perl. Możesz go zainstalować za pomocą czegoś takiego sudo cpan -i File::Rename
.
Lub możesz zmienić nazwę z pakietu perla Debiana . To tylko jeden plik do pobrania. Umieść go tam, gdzie chcesz i chmod , aby był wykonywalny.
Alternatywą jest narzędzie zmv dostarczane z Zsh . Nie ma tej samej składni, ale jest dostarczany z systemem operacyjnym i może łatwo zająć się wieloma typowymi przypadkami.
Na komputerach Mac używam swobodnie dostępnych Aristotle Pagaltzis rename
, które podobnie jak Debian, są oparte na Perlu. Możesz go zdobyć tutaj . Lub odwiedź tutaj, aby go najpierw przeczytać - zawsze dobry pomysł.
Musisz umieścić to gdzieś w swoim $PATH
pliku i uczynić go wykonywalnym ( chmod +x rename
), a potem możesz zacząć.
Nie powinno to być trudne, ale najwyraźniej tak jest. Przykład: chcę zmienić nazwę całego rozszerzenia pliku z aiff na aifc.
find . -iname "*.aiff" -exec bash -c 'mv "$0" "${0%\.aiff}.aifc"' {} \;
Jeśli szukasz GUI, wypróbuj Name Mangler . Ma funkcję „podglądu”, która pokazuje, co się stanie, jeśli zmienisz nazwę.
równoważne polecenie w zmianie nazwy (wieloplatformowe) to
$ renamer --regex --find 'old_pattern' --replace 'new_pattern' *glob
Jeśli podoba Ci się zaznaczenie Sublime Text, możesz użyć go z qmv:
qmv --editor = Pliki „/ usr / bin / s3 -w”
Właśnie poszedłem naprzód i znalazłem moją ulubioną, którą widziałem, zwaną per-rename, podając rename
polecenie, w którym pomoc wygląda następująco:
Usage: rename [-v] [-n] [-f] perlexpr [filenames]
W ten sposób wiem, że mam ten, który lubię.
W przypadku komputerów Mac nawet w Homebrew mają inne, w których ledwie pamiętam, że miałem problemy. Więc to nie jest rename
pakiet i nie jest to także renameutils
pakiet nongnu .
Mam go stąd i właśnie wykonałem instalację, jak wspomniano: https://github.com/subogero/rename
rename
w systemie Mac OS X: macosxhints.com/article.php?story=20050630022203488