Zaq, boa noite Segue uma solução para o amigo
waldi...@cerberos:~/cod$ cat zaq.sh #!/bin/bash IFS=# TEXT="#primeira primeira#segunda # terceira # quarta#" for b in $TEXT do echo - $b done waldi...@cerberos:~/cod$ ./zaq.sh - - primeira primeira - segunda - terceira - quarta waldi...@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 <zaq.t...@gmail.com> > > > 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 shell-script@yahoogrupos.com.br <shell-script%40yahoogrupos.com.br>, > 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] > > > > > -- ______________ Atenciosamente Waldirio msn: waldi...@gmail.com 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] ------------------------------------ --------------------------------------------------------------------- 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: shell-script-unsubscr...@yahoogrupos.com.br --------------------------------------------------------------------- Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net --------------------------------------------------------------------- Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil 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: shell-script-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html