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

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

Re: [shell-script] Como salvar cada arquivo de saída com um nome depende


From: Vinicius Xavier
Subject: Re: [shell-script] Como salvar cada arquivo de saída com um nome dependente do arquivo de entrada
Date: Sat, 17 Apr 2010 12:14:51 -0700 (PDT)

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 <address@hidden> escreveu:


De: Helton Moraes <address@hidden>
Assunto: [shell-script] Como salvar cada arquivo de saída com um nome 
dependente do arquivo de entrada
Para: address@hidden
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]



reply via email to

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