[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RES: [shell-script] Variáveis e arquivos....
From: |
Rodrigo Vilaça |
Subject: |
RES: [shell-script] Variáveis e arquivos.... |
Date: |
Wed, 19 Oct 2005 11:41:32 -0300 |
Se você fizer echo "$CONSULTA" > /tmp/consultadehoje ?
Funciona?
[]'s
Rodrigo Vilaça
>
>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
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos
--
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.344 / Virus Database: 267.12.2/137 - Release Date: 16/10/2005