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

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

Re: [shell-script] Re: Alteração de campos individualmente.


From: Waldirio Manhães Pinheiro
Subject: Re: [shell-script] Re: Alteração de campos individualmente.
Date: Mon, 18 Jan 2010 22:22:55 -0200

    Zaq, boa noite

  Segue uma solução para o amigo

waldirio@cerberos:~/cod$ cat zaq.sh
#!/bin/bash
IFS=#
TEXT="#primeira primeira#segunda # terceira # quarta#"

for b in $TEXT
do
  echo - $b
done

waldirio@cerberos:~/cod$ ./zaq.sh
-
- primeira primeira
- segunda
-  terceira
-  quarta
waldirio@cerberos:~/cod$

Agora basta dar uma refinada, porem o que ocorre, esta sendo definido o
delimitador padrao "IFS" como #, e o for ira imprimir todos os campos,
separados pelo delimitador padrao, agora setado para #. Caso nao seja setado
o # como IFS, o mesmo ira utilizar o espaco como padrao.

Acredito que agora vc pode filtrar os campos e trabalhar da melhor forma.

Qualquer dúvida manda ae.

[]'s
Waldirio

2010/1/18 mikoazul <address@hidden>

>
>
> Oi Waldirio,
>
> A idéia é aquela mesma que eu postei originalmente.
>
> Não quero substituir todos os # por *. A idéia é a partir de uma linha de
> entrada eu gere n linhas de saída.
>
> Tudo baseado no texto entre "#" (#texto_que_eu_quero_substituir#).
>
> Para cada texto encontrado eu quero tratá-lo e ignorar o restante e ir
> fazendo na sequencia cada um. Ou seja ir encontrando cada texto entre "#".
>
> Se uma linha tiver n textos entre "#" então o resultado será "n" linhas
> tratadas. Entendeu? Sendo que o texto de entrada só poderá ter no máximo 9
> textos entre "#" (justamente a quantidade de retrovisores que o sed pode
> utilizar).
>
> Talvez seja um assunto pra ser tratado na sed-br.
>
> []s
>
> --- Em address@hidden <shell-script%40yahoogrupos.com.br>,
> Waldirio Manhães Pinheiro <waldirio@...> escreveu
>
> >
> > Amigo, boa tarde
> >
> > Acredito que ajudaria mais se for um pouco mais claro. Como acredito que
> o
> > objetivo seja alterar todos os # para *, segue:
> >
> > jeju:[xxxx] > echo "#Teste# de #script#. Teste de #script2#. #Ultimo#
> teste
> > de #script3#"|sed 's/#/*/g'
> > *Teste* de *script*. Teste de *script2*. *Ultimo* teste de *script3*
> >
> > Porém, se precisar de algo a mais, peço que explique melhor a
> necessidade.
> >
> > []'s
> > Waldirio
> >
> > 2010/1/18 mikoazul <zaq.tech@...>
>
> >
> > >
> > >
> > > Pessoal,
> > >
> > > Tive que recorrer à lista pois meu caso está bem complicado (pelo menos
> pra
> > > mim). Já tentei alguns comandos sed e outros awk, mas não consigo
> resolver o
> > > impasse.
> > >
> > > Estou tentando transformar o arquivo "ENTRADA" nas várias saídas
> > > demonstradas abaixo.
> > >
> > > A idéia é ir pegando cada campo entre "#" e substituí-lo com * (por
> > > exemplo). O detalhe é que em cada linha tem-se um resultado diferente.
> Ou
> > > seja, ele vai tratando o próximo campo e automaticamente "destratando"
> o
> > > anterior. Ou seja a idéia é tratar um campo por vez.
> > >
> > > Se tiver alguém inspirado hoje e que puder me ajudar eu agradeço desde
> já.
> > >
> > > Vamos aos detalhes:
> > >
> > > Entrada:
> > > #Teste# de #script#. Teste de #script2#. #Ultimo# teste de #script3#.
> > >
> > > Saidas:
> > > * de script. Teste de script2. Ultimo teste de script3.
> > > Teste de *. Teste de script2. Ultimo teste de script3.
> > > Teste de script. Teste de *. Ultimo teste de script3.
> > > Teste de script. Teste de script2. * teste de script3.
> > > Teste de script. Teste de script2. Ultimo teste de *.
> > >
> > > Tentei com o sed e o máximo que consegui foi:
> > >
> > > cat ENTRADA | sed 's/^\(\([^#]*#\)\{1,2\}\)0*/*/'
> > >
> > > Saída:
> > > * de #script#. Teste de #script2#. #Ultimo# teste de #script3#.
> > >
> > > Grato desde já.
> > >
> > >
> > >
> >
> >
> >
> > --
> > ______________
> > Atenciosamente
> > Waldirio
> > msn: waldirio@...
>
> > Site: www.waldirio.com.br
> > Blog: blog.waldirio.com.br
> > PGP: www.waldirio.com.br/public.html
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
>  
>



-- 
______________
Atenciosamente
Waldirio
msn: address@hidden
Site: www.waldirio.com.br
Blog: blog.waldirio.com.br
PGP: www.waldirio.com.br/public.html


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



reply via email to

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