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

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

Re: [shell-script] preservando separador de campo


From: Emerson Domingues Souto
Subject: Re: [shell-script] preservando separador de campo
Date: Mon, 31 Oct 2005 12:53:31 -0200

Tiago, eu montei uma lógica pra isso, ta um pouco feio, mas é a versão 1.0 e 
funciona, vc pode deixar mais bonitinho e postar pra gente se quiser:


Prompt> cat aa.sh
v_ct=0
v_nome="'são, francisco', 43, 57, 0.0, '1994-11-29'"
v_tam=${#v_nome}
v_aspaligada=0
v_campo=""

while true ; do
   v_letra=${v_nome:$v_ct:1}

   # marca se conteudo entre aspas
   if [ "X$v_letra" = "X'" ] ; then
      if test $v_aspaligada -eq 0 ; then
         v_aspaligada=1
      else
         v_aspaligada=0
      fi
   fi

   # mostra cada campo na quebra por virgula
   v_quebra=0
   if [ "X$v_letra" = "X," ] ; then
      # mas a virgula tem q estar fora das aspas
      if test $v_aspaligada -eq 0 ; then
         echo $v_campo
         v_campo=""
         v_quebra=1
      fi
   fi

   # carrega cada letra na variavel CAMPO
   if test $v_quebra -eq 0 ; then
      v_campo="$v_campo$v_letra"
   fi

   # Sai do loop
   if test $v_ct -ge $v_tam ; then
      break
   fi
   v_ct=`expr $v_ct + 1`
done

# mostra ultimo campo considerando que nao terminou em virgula
echo $v_campo


Prompt> sh aa.sh
'são, francisco'
43
57
0.0
'1994-11-29'


Espero ter ajudado
Emerson

  ----- Original Message ----- 
  From: Tiago Barcellos Peczenyj 
  To: address@hidden 
  Sent: Sunday, October 30, 2005 3:03 AM
  Subject: [shell-script] preservando separador de campo


  Pessoal,

  Estou cá brincando com o bom e velho bash quando me deparo com o
  seguinte problema

  Tenho um arquivo assim
  $ cat valores
  'são, francisco', 43, 57, 0.0, '1994-11-29'

  E desejo deixa-lo assim:
  $ cat esperado
  'são, francisco'
   43
   57
   0.0
  '1994-11-29'

  A primeira vista parece "só" trocar o caracter ',' por '\n' com o tr
  mas... eu tenho uma string, 'são, francisco' onde preciso preservar
  este mesmo caracter.

  Alguma sugestão ?

  Att

  Tiago


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




   




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



reply via email to

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