[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Alteração de campos individualmente.
From: |
Fernando Luizao |
Subject: |
Re: [shell-script] Alteração de campos individualmente. |
Date: |
Mon, 18 Jan 2010 11:34:38 -0800 (PST) |
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]
- Re: [shell-script] Re: Alteração de campos individualmente., (continued)
Re: [shell-script] Alteração de campos individualmente., Fernando Luizao, 2010/01/18