Algumas idéias: a='#Teste# de #script#. Teste de #script2#. #Ultimo# teste de #script3#'
Teste se a string contém '#', se não tiver, acabamos. Pode usar isso em um laço: echo $a | grep '#' Substituindo a primeira ocorrência do que está entre '#' por '*' echo $a | sed 's/#[^#]*#/*/' Removendo as duas primeiras ocorrências do caracter '#' a=`echo $a | sed 's/#//1; s/#//1'` Juntando tudo isso acredito que resolva o problema =) Um esboço (não testado): while echo $a | grep '#' > /dev/null do echo $a | sed 's/#[^#]*#/*/' a=`echo $a | sed 's/#//1; s/#//1'` end Abraço --- Em seg, 18/1/10, mikoazul <zaq.t...@gmail.com> escreveu: De: mikoazul <zaq.t...@gmail.com> Assunto: [shell-script] Alteração de campos individualmente. Para: shell-script@yahoogrupos.com.br Data: Segunda-feira, 18 de Janeiro de 2010, 14:36 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á. ____________________________________________________________________________________ Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]