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