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

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

Re: [shell-script] Alteração de campos individualmente.


From: Raul Libório
Subject: Re: [shell-script] Alteração de campos individualmente.
Date: Mon, 18 Jan 2010 17:02:13 -0300

O cmd 'tr' n resolve isso não?

2010/1/18 Fernando Luizao <address@hidden>:
> Desculpem o double post, só uma correção:
>
> a='#Teste# de #script#. Teste de #script2#. #Ultimo# teste de #script3#'
>
> while echo $a | grep '#' > /dev/null
>
> do
>
>     echo $a | sed 's/#[^#]*#/* /'
>
>     a=`echo $a | sed 's/#//1; s/#//1'`
> done # eu tinha colocado 'end'!
>
> Agora eu testei, e está funcionando.
>
> Abraço
>
> --- Em seg, 18/1/10, Fernando Luizao <address@hidden> escreveu:
>
> De: Fernando Luizao <address@hidden>
> Assunto: Re: [shell-script] Alteração de campos individualmente.
> Para: address@hidden
> Data: Segunda-feira, 18 de Janeiro de 2010, 17:15
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>      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.tech@gmail. com> escreveu:
>
>
>
> De: mikoazul <zaq.tech@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.maisbusca dos.yahoo. com
>
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>      
> ____________________________________________________________________________________
> 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]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> 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: address@hidden
> ---------------------------------------------------------------------
> 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
>
>
>



-- 
Raul Libório
http://rauhmaru.blogspot.com/
rauhmarutsªhotmailºcom
Linux user#4444581

"There are only 10 types of people in the world -
Those who understand binary, and those who don't."


reply via email to

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