Os backticks não estão aparecendo no seu comentário - você provavelmente deve adicioná-lo como resposta ou editar sua pergunta para incluir sua solução.
Paul R
11
A melhor solução rápida que eu já encontrei foi usar o Automator embutido. Confira este artigo para obter ajuda passo a passo fácil: tuaw.com/2008/11/11/…
nilay
Eu votaria-se a resposta de Nilay se não fosse um comentário ...
voidstate
Respostas:
49
Com o Homebrew , um gerenciador de pacotes para o OS X:
brew install rename
Então você pode executar os mesmos renamecomandos que no Linux.
mas isso também permite a substituição de regex? Isso parece ser apenas algum tipo de globbing de shell aprimorado.
math
4
@brubelsabs: Sim, o zmv pode fazer a substituição do regexp . Para arquivos correspondentes *user*.html, altere a extensão para .htmle altere todas as ocorrências de rcpara final: zmv '(*user*).htm' '${1//rc/final}.html' @ghoppe: acho que o exemplo do zmv na sua resposta precisa -wou entre parênteses em torno do caractere curinga.
precisa
Eu realmente gosto dessa sugestão porque você não precisa instalar nada extra em um Mac (como o brew), mas permite que você use a sintaxe fácil do mmv.
Hay
+1 Nice. Algumas diferenças em relação às regexs às quais estou acostumado: 1) use em *vez de .*obter todas. *?parece funcionar como não ganancioso .*?. 2) para mim, ^e $para início e fim de seqüência parecia causar-lhe para combinar nada
user56reinstatemonica8
21
Desajeitado me:
for i in *.yourfiles; do mv "$i" "`echo $i | sed 's/old/new/g'`"; done
E se você quiser usá-lo como eu costumo fazer desta maneira:
rename 's/old/new/' *.files
Eu recomendo usar este script litte em ~ / bin / rename:
#!/usr/bin/env zsh
SUBSEXPR=$1
shift
for i in $@; do mv $i `echo "$i" | sed $SUBSEXPR`; done
seu script não funciona para mim "renomear ACDC AC-DC ACDC *" resultado-> "ssed: não pode ler ACDC: não existe esse arquivo ou diretório", instalei renomear util a partir do linux e agora funciona de qualquer maneira
holms
5
Você pode tentar instalar o MacPorts e instalar o renameutilspacote:
renameutils @ 0.10.0 (sysutils)
renameutils é um conjunto de programas criados para tornar a renomeação de arquivos mais rápida e menos complicada
eu não disse que sim. qmvparece que faz o trabalho.
precisa saber é o seguinte
qmvé uma grande ferramenta, enquanto um pouco muito trabalho para renomeações regex simples, é fantástico para inteligentemente nomeação e mover grandes quantidades de arquivos arbitrários
sapht
4
Existem várias versões de renomeação . Parece que você está procurando o baseado em Perl.
Uma versão deste utilitário vem com o módulo File :: Rename Perl. Você pode instalá-lo com algo parecido sudo cpan -i File::Rename.
Ou você pode mudar o nome do pacote perl do Debian . É apenas um único arquivo para download. Coloque-o onde quiser e faça o chmod para que seja executável.
Uma alternativa é a ferramenta zmv que acompanha o zsh . Ele não possui a mesma sintaxe, mas vem com o sistema operacional e pode cuidar facilmente de muitos casos comuns.
o perl rename é o que esta pergunta mostra como um exemplo.
quack quixote
2
Nos Macs, uso o Aristotle Pagaltzis disponível gratuitamente rename, que, como o Debian, é baseado em Perl. Você pode obtê-lo aqui . Ou visite aqui para ler primeiro - sempre uma boa ideia.
Você precisa colocá-lo em algum lugar no seu $PATHe torná-lo executável ( chmod +x rename) e pronto.
Se você estiver procurando por uma GUI, tente o Name Mangler . Ele possui um recurso de "visualização" que mostra o que acontecerá se você seguir com a renomeação.
Eu apenas fui em frente e encontrei o meu favorito que eu já vi chamado perl-rename, dando o renamecomando onde a ajuda se parece com isso:
Usage: rename [-v] [-n] [-f] perlexpr [filenames]
É assim que eu sei que tenho o que eu gosto.
Para Mac, mesmo em Homebrew, eles têm outros onde me lembro vagamente de ter problemas. Portanto, não é o renamepacote e também não é o renameutilspacote nongnu .
rename
no Mac OS X: macosxhints.com/article.php?story=20050630022203488Respostas:
Com o Homebrew , um gerenciador de pacotes para o OS X:
Então você pode executar os mesmos
rename
comandos que no Linux.fonte
rename-5.22
(onde 22 é a versão instalada) em vez derename
sudo mv /opt/local/bin/rename-XXX /opt/local/bin/rename
Use o poder do ZSH com sabedoria (digite
zsh
o terminal se você é uma daquelas almas pobres que não o usa por padrão):O ZMV segue a sintaxe do MMV .
fonte
*user*.html
, altere a extensão para.html
e altere todas as ocorrências derc
parafinal
:zmv '(*user*).htm' '${1//rc/final}.html'
@ghoppe: acho que o exemplo do zmv na sua resposta precisa-w
ou entre parênteses em torno do caractere curinga.*
vez de.*
obter todas.*?
parece funcionar como não ganancioso.*?
. 2) para mim,^
e$
para início e fim de seqüência parecia causar-lhe para combinar nadaDesajeitado me:
E se você quiser usá-lo como eu costumo fazer desta maneira:
Eu recomendo usar este script litte em ~ / bin / rename:
fonte
Você pode tentar instalar o MacPorts e instalar o
renameutils
pacote:fonte
qmv
parece que faz o trabalho.qmv
é uma grande ferramenta, enquanto um pouco muito trabalho para renomeações regex simples, é fantástico para inteligentemente nomeação e mover grandes quantidades de arquivos arbitráriosExistem várias versões de renomeação . Parece que você está procurando o baseado em Perl.
Uma versão deste utilitário vem com o módulo File :: Rename Perl. Você pode instalá-lo com algo parecido
sudo cpan -i File::Rename
.Ou você pode mudar o nome do pacote perl do Debian . É apenas um único arquivo para download. Coloque-o onde quiser e faça o chmod para que seja executável.
Uma alternativa é a ferramenta zmv que acompanha o zsh . Ele não possui a mesma sintaxe, mas vem com o sistema operacional e pode cuidar facilmente de muitos casos comuns.
fonte
Nos Macs, uso o Aristotle Pagaltzis disponível gratuitamente
rename
, que, como o Debian, é baseado em Perl. Você pode obtê-lo aqui . Ou visite aqui para ler primeiro - sempre uma boa ideia.Você precisa colocá-lo em algum lugar no seu
$PATH
e torná-lo executável (chmod +x rename
) e pronto.fonte
Isso não deve ser difícil, mas aparentemente é. Exemplo, desejo renomear toda a extensão do arquivo de aiff para aifc.
fonte
Se você estiver procurando por uma GUI, tente o Name Mangler . Ele possui um recurso de "visualização" que mostra o que acontecerá se você seguir com a renomeação.
fonte
o comando equivalente no renamer (multiplataforma) é
fonte
Se você gosta da seleção múltipla de Sublime Text, pode usá-lo com qmv:
fonte
Eu apenas fui em frente e encontrei o meu favorito que eu já vi chamado perl-rename, dando o
rename
comando onde a ajuda se parece com isso:Usage: rename [-v] [-n] [-f] perlexpr [filenames]
É assim que eu sei que tenho o que eu gosto.
Para Mac, mesmo em Homebrew, eles têm outros onde me lembro vagamente de ter problemas. Portanto, não é o
rename
pacote e também não é orenameutils
pacote nongnu .Entendi a partir daqui e apenas fiz a instalação como eles mencionam: https://github.com/subogero/rename
fonte