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

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

Re: Alteração de campos individualmente.


From: mikoazul
Subject: Re: Alteração de campos individualmente.
Date: Mon, 18 Jan 2010 19:32:06 -0000
User-agent: eGroups-EW/0.82

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




reply via email to

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