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: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] preservando separador de campo
Date: Mon, 31 Oct 2005 14:09:44 -0200

Maurcio e Emerson,

vcs me deram otimas ideias, vou estudar como implementa-las.

provavelmente ninguem vai querer fazer o que eu estou fazendo mas, é
interessante como um probleminha com aspas e virgulas podem aparecer onde
menos esperamos. rogo para que, quem passe por isso encontre nessa thread
algumas respostas !

Valeu pessoal

Em 31/10/05, Emerson Domingues Souto <address@hidden> escreveu:
>
>
> Tiago, eu montei uma lógica pra isso, ta um pouco feio, mas é a versão 1.0e 
> 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]
>
>
>
>  ---------------------------------------------------------------------
> 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:*  PUBLICIDADE
> <http://br.rd.yahoo.com/SIG=12fa2cqu6/M=365837.7000707.7924794.2369893/D=brclubs/S=2137111254:HM/Y=BR/EXP=1130777544/A=2950750/R=2/id=noscript/SIG=10tift5qr/*http://br.movies.yahoo.com/>
> ------------------------------
> *Links do Yahoo! Grupos*
>
>    - Para visitar o site do seu grupo na web, acesse:
>    http://br.groups.yahoo.com/group/shell-script/
>    - Para sair deste grupo, envie um e-mail para:
>    address@hidden<address@hidden?subject=Unsubscribe>
>    - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
>    Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>
>


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



reply via email to

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