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: Eric Anderson
Subject: Re: [shell-script] Variáveis e arquivos....
Date: Wed, 19 Oct 2005 13:37:03 -0200

exprimenta:

echo -e "$CONSULTA\n"  > /tmp/consultadehoje

sds


Eric Anderson
11-6643-2814
11-6643-2815
11-7269-4207
  ----- Original Message ----- 
  From: Mauricio 
  To: address@hidden 
  Sent: Wednesday, October 19, 2005 9:18 AM
  Subject: Re: [shell-script] Variáveis e arquivos....


  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
  ---------------------------------------------------------------------



        Yahoo! Grupos, um serviço oferecido por: 
          


------------------------------------------------------------------------------
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/
      
    b.. Para sair deste grupo, envie um e-mail para:
    address@hidden
      
    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço 
do Yahoo!. 



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



reply via email to

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