Olá, Vinícius, obrigado pela resposta!
Na verdade não é isso que procuro fazer. Minha idéia não é copiar os
arquivos e apagar os originais, mas sim criar novos arquivos baseados
no processamento de arquivos existentes. No final, fico com os
arquivos originais não-modificados, e com os novos arquivos, com nomes
diferentes mas baseados nos nomes originais.
Por exemplo, se eu processase o arquivo muitos_dados.xml, removendo
várias partes que não interessam usando o sed, eu salvaria um novo
arquivo chamado, por exemplo, muitos_dados_resumido.txt.
O problema é que, como é um processamento em lote em que o primeiro
comando é o find, eu não sei como armazenar uma variável "temporária"
com o nome original de CADA arquivo, rodar o comando para processar o
arquivo, rodar outro comando para gerar o novo nome, e no final de
tudo isso salvar o resultado com o novo nome gerado.
Novamente obrigado por enquanto
Helton Moraes
--- Em address@hidden
<mailto:shell-script%40yahoogrupos.com.br>, Vinicius Xavier
<vinicius_xavier@...> escreveu
>
> Helton,
>
> O resultado que vc quer seria o abaixo?
>
> Apagar os arquivos proucurados, e ter uma cópia dos mesmos?
>
> ls -ltr | tail -6
> -rw-r--r-- 1 vinicius users 0 Apr 17 16:04 bun003.ply
> -rw-r--r-- 1 vinicius users 0 Apr 17 16:04 bun002.ply
> -rw-r--r-- 1 vinicius users 0 Apr 17 16:04 bun001.ply
> -rw-r--r-- 1 vinicius users 0 Apr 17 16:05 mcfly.ply
> -rw-r--r-- 1 vinicius users 0 Apr 17 16:05 starship.ply
> -rw-r--r-- 1 vinicius users 0 Apr 17 16:05 fore_aft.ply
>
> for i in $(ls | grep ".ply") ; do mv "$i" "$i"_BKP ; done
>
> ls -ltr | tail -6
> -rw-r--r-- 1 vinicius users 0 Apr 17 16:04 bun003.ply_BKP
> -rw-r--r-- 1 vinicius users 0 Apr 17 16:04 bun002.ply_BKP
> -rw-r--r-- 1 vinicius users 0 Apr 17 16:04 bun001.ply_BKP
> -rw-r--r-- 1 vinicius users 0 Apr 17 16:05 mcfly.ply_BKP
> -rw-r--r-- 1 vinicius users 0 Apr 17 16:05 starship.ply_BKP
> -rw-r--r-- 1 vinicius users 0 Apr 17 16:05 fore_aft.ply_BKP
>
>
>
>
> Abs,
> Vinícius Xavier
>
>
> --- Em sáb, 17/4/10, Helton Moraes <heltonbiker@...> escreveu:
>
>
> De: Helton Moraes <heltonbiker@...>
> Assunto: [shell-script] Como salvar cada arquivo de saída com um
nome dependente do arquivo de entrada
> Para: address@hidden
<mailto:shell-script%40yahoogrupos.com.br>
> Data: Sábado, 17 de Abril de 2010, 15:37
>
>
>
>
>
>
> E aí, pessoal
>
> Tenho andado com uma dúvida que deve ser simples (mas não sei como
fazer,
> hehe). Não sou da área da programação, então essas coisas são meio
novidade.
>
> Cada vez que tenho um monte de arquivos que tenho que "limpar" ou
formatar
> (parsear somente as informações que me interessam, meu fluxo de
trabalho é o
> seguinte:
>
> 1) encontrar todos os arquivos que preenchem alguma condição, geralmente
> nome ou extensão, dentro de algumas pastas;
> 2) aplicar um ou mais comandos, como sed, grep, ou se forem imagens o
> imagemagick, ou outros comandos;
> 3) salvar um novo arquivo de "resultado", cujo nome dependa do
arquivo de
> entrada.
>
> Por exemplo, se tenho os arquivos
>
> bun001.ply
> bun002.ply
> bun003.ply
> fore_aft.ply
> starship.ply
> mcfly.ply
>
> eu poderia fazer algo do tipo $ find ./ -name '*.ply' - exec
> sed<alguma_coisa> '{}' > '{}'.txt \;
>
> No exemplo acima, entretanto, ao menos nas minhas tentativas não muito
> insistentes, os arquivos de saída ficam literalmente {}.txt, e só o
último
> é salvo porque os arquivos têm o mesmo nome e vão se sobrescrevendo.
> Isso me faz supor que o '{}' do find não "atravessa" o
redirecionamento '>'.
>
> Vi gente nos fóruns sugerindo fazer algo parecido com isso: $ find
./ -name
> '*.ply' - exec sh -c 'sed<alguma_ coisa> {} > {}.txt \;'
>
> mas no fim das contas aí mesmo é que nada aconteceu (nada foi salvo).
>
> Agora resolvi (ao menos para fazer de algum jeito) usar dois scripts, de
> modo que o 'find -exec' chame um script que contenha o sed, de forma
que eu
> possa criar variáveis próprias para cada "rodada" desencadeada pelo find
> para tratar um único arquivo. Entretando, isso me parece bastante
> ineficiente e "errado".
>
> Assim sendo, pergunto (desculpem as maiúsculas, só por destaque):
>
> QUAL É A BOA PRÁTICA RECOMENDÁVEL PARA PROCESSAMENTO EM LOTE DE ARQUIVO
> USANDO O FIND, ONDE SEJA NECESSÁRIO CRIAR O NOME DE ARQUIVO DE SAÍDA COM
> BASE NO NOME DO RESPECTIVO ARQUIVO DE ENTRADA?
>
> Vou seguir lendo aqui, quando tiver chegado a uma situação
satisfatória (de
> preferência com um único script), divulgo para lista, mas agradeço
qualquer
> dica e/ou ajuda.
>
> Obrigado
>
> Helton Moraes
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
>
>
>
>
>
>
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>