Acho que a melhor forma das que você citou é o "find -exec". mas eu
aconselho usar sempre o xargs.

[]'s
Gunter


Em 30 de março de 2010 11:49, Helton Moraes <heltonbi...@gmail.com>escreveu:

>
>
> Caros colegas
>
> Acabei esbarrando em um comando que fez o serviço de forma perfeita:
>
> mcp '~/pacientes/*/* */white.bmp' '~/saida/octave/#1-#2-#3-white.bmp'
> mcp '~/pacientes/*/* */fringes.bmp' '~/saida/octave/#1-#2-#3-fringes.bmp'
>
> Como não sei se esse comando 'viola' os termos desta lista (usar outras
> linguagens), então aproveito ainda para fazer uma pergunta mais genérica,
> em
> termos de boa-prática em shell:
>
> "qual é a conduta recomendável, em termos de pipe/redirecionamento, para
> localizar um arquivo em determinada estrutura de diretórios/filenames,
> passá-lo por diversos comandos, e depois salvá-lo (na verdade uma cópia) em
> outro local, com outro nome, já devidamente processado?"
>
> Esta não é uma pergunta para ser respondida de forma pronta e completa,
> acho
> eu (tomara que possa ser!), mas ao ser confrontado com meu problema atual,
> me parecem ser possíveis diversas alternativas, e vejo que algumas
> geralmente são desestimuladas por alguns, preferidas por outros...
>
> Vejamos, TAREFA:
> - localizar arquivos de imagem dentro de uma árvore, com determinado nome;
> - passá-los por batch processing no imagemagick (rotacionar, ajustar
> histograma, recortar, etc);
> - renomeá-los de acordo com a estrutura de diretório de onde provieram;
> - salvá-los, processados e renomeados, em uma saída;
> - opcionalmente, "limpar" os rastros deixados pelos passos anteriores do
> script (pastas e arquivos criados).
>
> Abordagens possíveis:
> - usar muitos loops aninhados;
> - usar find -exec;
> - usar find + piping;
> - usar find >argumentos.txt, e apontar o argumentos.txt como lista de
> argumentos para outros comandos (talvez sendo antes processado pelo sed);
> - declarar variáveis no início e durante o script, e usar essas variáveis
> em
> substituições no meio dos comandos;
> - etc, etc, etc.
>
> Uma questão de boa-prática que me 'aflige' em especial é se seria 'errado',
> por exemplo:
> primeiro mover tudos os arquivos com um comando, depois processar todos os
> arquivos com outro, depois renomear com outro, tipo, um comando por linha,
> que iria ficar gravando e regravando um monte de arquivos em um monte de
> pastas, e ao final poderia (ou não) limpar seus rastros;
>
> OU
>
> Se é considerado universalmente melhor, sempre que possível e até a morte,
> dar um monte de pipes, processando as informações dentro do comando, sem
> gravar arquivo nenhum exceto a saída final.
>
> Já imagino que a preferência e experiência pessoal é o que vai decidir se é
> melhor um ou outro, mas como estou aprendendo (sempre estamos), acho
> importante se acostumar desde o início em planejar da melhor forma os
> scripts, evitando vícios e ineficiências - principalmente por saber
> identificá-los.
>
> Grato pela atenção
>
> Helton
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



------------------------------------

---------------------------------------------------------------------
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: shell-script-unsubscr...@yahoogrupos.com.br
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    shell-script-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a