Oi!
Tudo bem?
Eu acho que não expliquei direito. Fiz um menu no inÃcio do script para
escolher se quero fazer a consulta no momento (e essa parte faz bom uso
do while e do read atribuindo cada campo a sua variável - obrigado! - e
já está funcionando) ou então quero usar uma consulta anterior salva
em disco. E o problema está nisso. Essa consulta anterior salva em disco
não permanece num formato que eu possa usar um laćo como o while, por
exemplo, ou então cortar campos com o akw ou cut. O que acontece:
Suponha que eu tenha uma consulta do tipo:
campo1 campo2 campo3 campo4
campo1 campo2 campo3 campo4
campo1 campo2 campo3 campo4
campo1 campo2 campo3 campo4
campo1 campo2 campo3 campo4
campo1 campo2 campo3 campo4
campo1 campo2 campo3 campo4
para n linhas (e são muitas eheheh). Depois de armazenada na variável
$CONSULTA, por exemplo, eu estou salvando desta forma:
echo $CONSULTA > /tmp/consultadehoje
Quando eu leio esse arquivo eu descubro que ele ficou assim:
campo1 campo2 campo3 campo4 campo1 campo2 campo3 campo4 campo1 campo2
campo3 campo4 campo1 campo2 campo3 campo4 campo1 campo2 campo3 campo4
campo1 campo2 campo3 campo4 campo1 campo2 campo3 campo4 campo1 campo2
campo3 campo4
Entendeu? Ou seja, sem a quebra de linha eu nà o tenho como usar um laćo
ou qualquer outro separador por campos (na verdade eu tenho, eu sei, eu
poderia fazer uma análise do tipo de dado com um egrep e expressão
regular e com isso delimitar as linhas - mas eu acho que isso é tornar
mais longo algo que pode ser mais rápido). Então a pergunta é: Como eu
armazeno essa variável $CONSULTA em disco mantendo o formato original da
consulta?
Abraćo e obrigado pela atenćà o,
Ricio
*/
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]
---------------------------------------------------------------------
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: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos
---------------------------------------------------------------------
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: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em