Miko, Se entendi direito, o que você quer é muito simples: $ sed -i 's/\#/\*/g' ENTRADA
olhe: [bgun...@gunter ~]$ cat a #Teste# de #script#. Teste de #script2#. #Ultimo# teste de #script3# [bgun...@gunter ~]$ sed -i 's/\#/\*/g' a [bgun...@gunter ~]$ cat a *Teste* de *script*. Teste de *script2*. *Ultimo* teste de *script3* [bgun...@gunter ~]$ []'s Gunter Em Seg, 2010-01-18 às 16:36 +0000, mikoazul escreveu: > > > 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á. > > > > > [As partes desta mensagem que não continham texto foram removidas]