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 [email protected], Waldirio Manhães Pinheiro <waldi...@...> 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.t...@...> > > > > > > > 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: waldi...@... > 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] >
