shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: Renomear arquivos em cadeia em um diretório


From: Rafael Lahm
Subject: Re: [shell-script] Re: Renomear arquivos em cadeia em um diretório
Date: Sat, 22 Jan 2005 16:08:04 -0200

Podemos fazer isto de outra forma:

> touch 112_12345.BMP 115_12346.BMP 122_12347.BMP 123_12348.BMP
...

> cd $DIR
> for A in *; { mv $A  ${A#*_}; }
> ls 
12345.BMP  12346.BMP  12347.BMP  12348.BMP

Onde ${A#*_} pega a primeira ocorrência da expressão '*_'. E reparem 
que desta forma só saímos do contesto de comandos da shell (builtins) 
para renomear os arquivos, portanto a execução fica bem mais
rápida. 


On Wed, 19 Jan 2005 23:59:18 -0000
"oteb_04" <address@hidden> wrote:

> 
> 
> --- Em address@hidden, Fábio Batista
> <fabio.david.batista@g...> escreveu
> > Pô, depois desse texto todo, apenas um "Obrigado"?
> > 
> > Quero ouvir comentários :)
> > 
> > Fábio David Batista
> > fabio.david.batista@g...
> > http://nerd-o-matic.blogspot.com
> > 
> 
> O "Obrigado" realmente foi muito econômico. O email é uma 
> ferramenta maravilhosa, mas às vezes difícil de usar. Então 
> prefiro escrever pouco. E além de tudo sou aquele aluno
> que fica calado no final da sala.
> 
> A linha foi fantástica, e juntando com o texto, amplia os
> horizontes. Sinceramente não sabia dizer exatamente qual parte
> destacar e assim pedi uma explicação para a linha toda
> 
> Veja, cheguei a pensar em usar 'paste' e por isso os arquivos
> teste.sh e teste1.sh. Mas não tinha percebido como passar o 'mv'
> para o resultado. Concluindo, caia sempre no loop for que 
> tentava evitar.
> 
> Bem, com seu exemplo vi que era possivel e assim fiz
> ls|grep .BMP|sed 's/^/mv /g' > teste.sh
> ls|grep .BMP|tr -s 'BMP' 'bmp'|sed 's/.*_//g' > teste1.sh
>  
> Mas teria o trabalho de redirecionar a saida do comando para outro
> arquivo, torná-lo executável,.... Começaria a ficar chato, se não
> ficasse sabendo do '|sh', e então, com uma terceira linha terminar a
> tarefa:
> paste -d" " teste.sh teste1.sh|sh
> 
> Como não tinha passado a idéia para cá, corri um risco sem saber.
> Perder a oportunidade de solucionar uma situação corriqueira(renomear
> arquivos) de uma maneira diferente e talvez mais eficiente. Tinha
> aceitado o 'loop for', a solução rotineira.
> 
> Mas com seu exemplo, entendi como resolver algo em que estava pensando
> e vi que o sed vai mais além do comumente divulgado. Foram mais de 
> dois coelhos alvejados. 
> 
> Sua resposta, assim como de outras pessoas, esclarecem muito bem
> o assunto. Dias atrás enviei um script para lista(sobre pesquisa
> no site) que não sabia que tinha capacidade de fazer. E ao
> terminar, percebi que todo ele tinha sido tirado de emails daqui.
> Apenas juntei as partes. Não apareço muito, mas tenho tirado bom
> proveito
> 
> Abraço a todos e obrigado
> Beto  
> 
> 
> abraço
> Beto
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>  
> Links do Yahoo! Grupos
> 
> 
> 
> 
>  
> 
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]