[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
>
>
>
>
>
>
>
>