Automatize a renomeação do arquivo no OSX

0

Exemplo: Temos uma pasta com 30 imagens com nomes inconsistentes. Essas imagens precisam ser nomeadas de forma consistente e numericamente: image1.jpg image2.jpg image3.jpg ... image30.jpg Isso pode ser automatizado?

    
por Fresheyeball 28.08.2012 / 18:28

3 respostas

4
A

Hazel monitora as pastas para alterações e pode renomear os arquivos recém-adicionados. Comercial com demonstração completa.

Hazel watches whatever folders you tell it to, automatically organizing your files according to the rules you create. It features a rule interface similar to that of Apple Mail so you should feel right at home. Have Hazel move files around based on name, date, type, what site/email address it came from (Safari and Mail only) and much more.

Name Mangler é um utilitário de renomeação de arquivos. Apenas arraste & solte os arquivos na janela do programa e defina as regras. A pré-visualização mostra como os arquivos serão nomeados posteriormente. Comercial com demonstração completa.

The Finder is good at a lot of things, but renaming a lot of files is not one of them. Enter Name Mangler, which makes short work of all your file renaming tasks.

OseuMacvemcomo Automator , uma ferramenta que permite criar os fluxos de trabalho .

With Automator you can automate much of what you do with your computer. Create and print a family directory with the contacts in your Address Book. Find and add images from your favorite websites to iPhoto. Print your documents to your iPad. Instantly rename dozens of files in the Finder.

Inicie e selecione para criar um novo fluxo de trabalho . Na Biblioteca, adicione uma ação Obter Itens do Finder Especificados e uma ação Itens do Renomear Finder (não crie cópias dos arquivos quando for perguntado sobre isso). Drop & Solte os arquivos na primeira ação para adicioná-los ao fluxo de trabalho. Configure o segundo como mostrado para Make Sequential com novo nome e separado por nada . Corra pressionando o botão "Play" na barra de ferramentas.

Parafazerissoapartirdalinhadecomandoembash,digiteodiretóriopaieexecuteoseguintecomando:

declare-iC=1;forfilein*.jpg;domv"$file" "image$C.jpg" ; C=C+1 ; done
    
por 28.08.2012 / 18:35
2

Você pode usar um comando shell como este:

i=1;for f in *;do echo mv "$f" image$((i++)).jpg;done

Remova echo se a saída parece correta.

Outra opção é executar brew install rename e, em seguida, executar rename -n '$_=$N.".jpg"' * . Remova -n se a saída parece correta. $N é o número do arquivo a partir de 1, $_ é a linha atual e . é usado para concatenação de strings em Perl.

Mais exemplos:

i=1;for f in *;do mv "$f" $(printf %03d $i).jpg;let i++;done
i=1;for f in *;do mv "$f" $(printf %03d $i).${f##*.};let i++;done
IFS=$'\n';i=1;for f in $(ls -rt);do mv "$f" "$((i++)) $f";done
for f in *.mp3;do mv "$f" "$(printf %02d ${f%% *}) ${f#* }";done
for f in *;do b=${f%.*};x=${f#*.};mv $f ${b%-*}-$(printf %03d ${b#*-}).$x;done
shopt -s extglob;for f in !(*.*);do mv $f $f.txt;done
for f in *;do mv "$f" "${f//[^a-zA-Z0-9.]}";done
rename 's/.*ep(..).*/Example EP$1 720p HDTV x264.srt/' *.srt

${f##*.} remove o padrão *. mais longo desde o início e ${f%.*} remove o padrão .* mais curto do final. ${f//[^a-zA-Z0-9.]} remove todos os caracteres, exceto [a-zA-Z0-9.] .

    
por 29.08.2012 / 04:04
1

Resposta do Driveby, no caso de alguém chegar a esta página no futuro: O Yosemite (OSX 10.10) adicionou renomeação de lote ao localizador, então agora tudo o que precisa fazer para executar essas operações é selecionar todos os arquivos que precisam renomeando, clique com o botão direito do mouse / controlando-o e selecione Rename X items... .

    
por 27.02.2015 / 17:31