Renomeando muitos arquivos no Mac OS X, processamento em lote

52

Eu costumava renomear o arquivo no Linux por meio de um comando rename:

rename 's/old_pattern/new_pattern/g' *glob

Existe algo semelhante no Mac OS X (Snow Leopard)?

    
por math 15.06.2010 / 09:23

10 respostas

21

Me desajeitado:

for i in *.yourfiles; do mv "$i" "'echo $i | sed 's/old/new/g''"; done 

E se você quiser usá-lo como eu faço frequentemente desta maneira:

rename 's/old/new/' *.files

Eu recomendo usar este pequeno script em ~ / bin / rename:

#!/usr/bin/env zsh
SUBSEXPR=$1
shift
for i in $@; do mv $i 'echo "$i" | sed $SUBSEXPR'; done
    
por 15.06.2010 / 15:18
47

Com o Homebrew , um gerenciador de pacotes para o OS X:

brew install rename 

Então você pode executar os mesmos comandos rename como no Linux.

    
por 12.10.2011 / 02:17
25

Use o poder do ZSH com sabedoria (digite zsh no terminal se você for uma daquelas pobres almas que não o usam por padrão):

autoload zmv
zmv '(*).htm' '$1.html'

O ZMV segue a sintaxe MMV .

    
por 15.06.2010 / 16:27
4

Existem várias versões de renomear . Parece que você está procurando pelo baseado em Perl.

Uma versão deste utilitário vem com o módulo File :: Rename Perl. Você pode instalá-lo com algo como sudo cpan -i File::Rename .

Você também pode usar o < em> renomear do pacote perl do Debian . É apenas um único arquivo para download. Coloque onde quiser e chmod para que seja executável.

Uma alternativa é o zmv ferramenta que vem com zsh . Ele não tem a mesma sintaxe, mas vem com o seu sistema operacional e pode facilmente cuidar de muitos dos casos comuns.

    
por 15.06.2010 / 14:05
3

Você pode tentar instalar o MacPorts e instalar o pacote renameutils :

renameutils @0.10.0 (sysutils)

renameutils is a set of programs designed to make renaming files faster and less cumbersome

    
por 20.06.2010 / 11:45
2

Nos Macs eu uso livremente o rename de Aristóteles Pagaltzis, que como o Debian é baseado em Perl. Você pode obtê-lo aqui . Ou visite aqui para lê-lo primeiro - sempre uma boa ideia.

Você precisa colocar isso em algum lugar no seu $PATH e torná-lo executável ( chmod +x rename ) e então você está pronto para ir.

    
por 22.06.2010 / 14:04
2

Isso não deve ser difícil, mas aparentemente é. Exemplo, Quero renomear a extensão de todos os arquivos de aiff para aifc.

find . -iname "*.aiff" -exec bash -c 'mv "$0" "${0%\.aiff}.aifc"' {} \;
    
por 03.08.2013 / 06:06
1

Se você estiver procurando por uma GUI, tente Name Mangler . Ele tem um recurso de "visualização" que mostra o que acontecerá se você seguir com a renomeação.

    
por 21.06.2010 / 00:17
1

o comando equivalente em renamer (multiplataforma) é

$ renamer --regex --find 'old_pattern' --replace 'new_pattern' *glob
    
por 06.10.2013 / 13:48
0

Se você gosta do multiselect do Sublime Text, você pode usá-lo com qmv:

qmv --editor="/usr/bin/s3 -w" files

    
por 22.12.2013 / 10:13