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

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

Re: [shell-script] Mover e Renomear - continuação


From: Bruno Gunter
Subject: Re: [shell-script] Mover e Renomear - continuação
Date: Tue, 30 Mar 2010 12:20:03 -0300

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 <address@hidden>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]



reply via email to

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