Backticks nie pojawiają się w twoim komentarzu - prawdopodobnie powinieneś dodać to jako odpowiedź lub edytować swoje pytanie, aby uwzględnić swoje rozwiązanie.
Paul R
1
Najlepszym szybkim rozwiązaniem, jakie kiedykolwiek znalazłem, jest użycie wbudowanego Automatora. Sprawdź ten artykuł, aby uzyskać łatwą pomoc krok po kroku: tuaw.com/2008/11/11/…
nilay
Głosowałbym za odpowiedzią Nilay, gdyby nie był to komentarz ...
ale czy to również umożliwia wymianę wyrażeń regularnych? Wydaje się, że to tylko rodzaj ulepszonego globowania powłoki.
matematyka
4
@brubelsabs: Tak, zmv może zastąpić wyrażenia regularne . W przypadku pasujących plików *user*.htmlzmień rozszerzenie na .htmli zmień wszystkie wystąpienia rcna final: zmv '(*user*).htm' '${1//rc/final}.html' @ghoppe: Myślę, że przykład zmv w twojej odpowiedzi wymaga -wlub nawiasów otaczających jego symbol wieloznaczny.
Chris Johnsen
Naprawdę podoba mi się ta sugestia, ponieważ nie musisz instalować niczego więcej na komputerze Mac (jak napar), ale pozwala ona na użycie łatwej składni mmv jak.
Hay
+1 ładne. Kilka różnic od wyrażeń regularnych, do których jestem przyzwyczajony: 1) używaj *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
user56reinstatemonica8
21
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
skrypt nie działa na mnie „zmień ACDC ACDC ACDC *” result-> „ssed: nie można odczytać ACDC: Nie ma takiego pliku lub katalogu”, zainstalowałem przemianować util z linux i teraz działa anwyay
holms
5
Możesz spróbować zainstalować MacPorts i zainstalować renameutilspakiet:
renameutils @ 0.10.0 (sysutils)
renameutils to zestaw programów zaprojektowanych w celu przyspieszenia i mniej kłopotliwej zmiany nazw plików
nie powiedziałem, że tak. qmvwygląda na to, że to działa.
lajuette
qmvto ś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
sapht
4
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.
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 $PATHpliku i uczynić go wykonywalnym ( chmod +x rename), a potem możesz zacząć.
Właśnie poszedłem naprzód i znalazłem moją ulubioną, którą widziałem, zwaną per-rename, podając renamepolecenie, 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 renamepakiet i nie jest to także renameutilspakiet nongnu .
rename
w systemie Mac OS X: macosxhints.com/article.php?story=20050630022203488Odpowiedzi:
W Homebrew menedżer pakietów dla OS X:
Następnie możesz uruchomić te same
rename
polecenia, co w systemie Linux.źródło
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ą):ZMV działa zgodnie ze składnią MMV .
źródło
*user*.html
zmień rozszerzenie na.html
i zmień wszystkie wystąpieniarc
nafinal
: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 pasujeNiezdarny ja:
A jeśli chcesz go używać tak jak ja często w ten sposób:
Polecam użyć tego skryptu litte w ~ / bin / rename:
źródło
Możesz spróbować zainstalować MacPorts i zainstalować
renameutils
pakiet:źródło
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ówIstnieją 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.
źródło
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ąć.źródło
Nie powinno to być trudne, ale najwyraźniej tak jest. Przykład: chcę zmienić nazwę całego rozszerzenia pliku z aiff na aifc.
źródło
Jeśli szukasz GUI, wypróbuj Name Mangler . Ma funkcję „podglądu”, która pokazuje, co się stanie, jeśli zmienisz nazwę.
źródło
równoważne polecenie w zmianie nazwy (wieloplatformowe) to
źródło
Jeśli podoba Ci się zaznaczenie Sublime Text, możesz użyć go z qmv:
źródło
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żerenameutils
pakiet nongnu .Mam go stąd i właśnie wykonałem instalację, jak wspomniano: https://github.com/subogero/rename
źródło