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

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

Re:[shell-script] Variáveis e arquivos....


From: MrBiTs
Subject: Re:[shell-script] Variáveis e arquivos....
Date: Tue, 18 Oct 2005 21:33:58 -0300

/*
TEnho conseguido fazer muita coisa por aqui. Eu lido com mysql e sempre 
que armazeno alguma consulta extensa numa variável, por exemplo:
var=`mysql etc.. etce.... `
posso resgatar dados dessa variável.
Meu problema: se minha consulta foi uma matriz desse tipo,
azul dois quarta-feira
amarelo quatro sábado
preto quinze domingão
Eu resgato cada linha tranquilamente, por exemplo com:
echo $var | grep 'quatro'
que me retorna
amarelo quatro sábado
O caso é que a consulta ao banco é grande e extensa. Então tive a 
idéia de armazená-la em disco e ter a op´cão de usar esse arquivo do 
disco. O problema é que quando fa´co algo do tipo
echo $var > /tmp/consultadomysql
ele armazena sem as quebras de linha e sem os tabs, assim:
azul dois quarta-feira amarelo quatro sábado preto quinze domingão
tornando minha consulta por linha inviável. Sei que está me faltando 
conhecer alguma coisa, mas não consegui descobrir o quê, vcs podem me 
 ajudar???
*/

Acho que o seu problema se resolve num laço. Digamos que você faça:

for LINHA in $(mysql -u usuario -psenha -N -e "Select * from tabela" BANCO) ; 
do echo $LINHA ; done

Acho uma forma mais inteligente de se tratar o resultado de uma consulta a 
dados. Vai bem de encontro às filosofias de desenvolvimento que dizem que uma 
consulta deve ser tratada linha a linha, campo a campo. 

Ainda podemos estender esse conceito para algo como:

mysql -u root -psenha -N -e "Select host,user,db from db" mysql | \
while read HOST USER DB ; do
   echo $HOST
   echo $USER
   echo $DB
done 

e ao invés de tratarmos nossa linha de dados como uma coisa só ( sempre 
passível de ser separada por um set - $LINHA ), temos como tratar os campos 
individualmente, sem contar a economia de processamentos, IO...


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



reply via email to

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