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

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

Re: Editar um arquivo de uma linha com SED


From: Marcos Gattermeyer
Subject: Re: Editar um arquivo de uma linha com SED
Date: Mon, 12 Mar 2007 13:20:46 -0000
User-agent: eGroups-EW/0.82

Flavio,

Tambem nao daria certo porque posso ter uma gama enorme de cores e
protudos para fazer a substituicao.

Havia pensado em ponteiramento na string por exemplo, faço uma
primeira pesquisa procurando por "giz" ponteirando ai, e a partir dai
faço uma segunda pesquisa com troca de 18.00 para 17.00 ponteirando
novamente, faço nova pesquisa ..... assim por diante.

Sera que e possivel ?

Senao vou ter que criar um programinha so para isso em outra
plataforma (arrepio)

Obrigado

Marcos

--- Em address@hidden, "Flavio Junior" <billpp@...>
escreveu
>
> Com certeza..
> Porem, se tratando de um arquivo .dbf (se nao me engano, ele eh
reconhecido
> como uma unica linha ne?)
> um coringa poderia ser um problemao.
> 
> Na verdade, acho que a opcao de teste poderia ser
> 
> junior@babalu:~$ cat teste
> 100 teste 18.00pc 20.00 101 giz amarelo 18.00pc 1.00 102 lapis 18.00pc
> 102.00 100 teste 18.00pc 20.00 101 giz verde 18.00pc 1.00 102 lapis
18.00pc
> 102.00 100 teste 18.00pc 20.00 101 giz azul 18.00pc 1.00 102 lapis
18.00pc
> 102.00 100 teste 18.00pc 20.00 101 giz 18.00pc 1.00 102 lapis
18.00pc 102.00
> 
> junior@babalu:~$ sed 's/giz\ \(\(verde\|azul\|amarelo\|cores\)\ \)\?\ *
> 18.00pc/giz \117.00pc/g' teste
> 100 teste 18.00pc 20.00 101 giz amarelo 17.00pc 1.00 102 lapis 18.00pc
> 102.00 100 teste 18.00pc 20.00 101 giz verde 17.00pc 1.00 102 lapis
18.00pc
> 102.00 100 teste 18.00pc 20.00 101 giz azul 17.00pc 1.00 102 lapis
18.00pc
> 102.00 100 teste 18.00pc 20.00 101 giz 17.00pc 1.00 102 lapis
18.00pc 102.00
> 
> junior@babalu:~$
> 
> Presta atenção no sed que eu optei por usar todas as cores possiveis na
> string do grupo... voce pode usar algo como [a-z]+ ... mas pensando
em um
> arquivo .dbf, cuidado com a estrutura. Tem mto lixo nessas coisas.
> 
> Tenta entender a regex tambem, tentei manter o numero de espaços
identicos
> pra evitar problemas.
> 
> 
> Flavio do Carmo Junior
> 
> 
> 
> On 3/12/07, Marcos Gattermeyer <mgatter@...> wrote:
> >
> >   Bom dia Flavio,
> >
> > Nao daria certo porque posso ter "giz verde pc" ou giz azul pc",
> > realmente preciso pesquisar a string "giz" e a partir dai pesquisar o
> > ICMS "18.00" e substituir, depois continuar a pesquisa pois posso ter
> > mais de um "giz" na tabela para substituir o ICMS.
> >
> > Pensei na sua solucao em usar um coringa entre o "giz" e o ICMS, daria
> > para fazer isso?
> >
> > Obrigado
> >
> > Marcos
> >
> > --- Em address@hidden
<shell-script%40yahoogrupos.com.br>,
> > "Flavio Junior" <billpp@>
> > escreveu
> > >
> > > Um simples:
> > >
> > > $ sed 's/giz 18.00pc/giz 17.00pc/g' arquivo.dbf
> > >
> > > nao resolve ?
> > >
> > >
> > > Flavio do Carmo Junior
> > >
> > > On 3/12/07, Marcos Gattermeyer <mgatter@> wrote:
> > > >
> > > > Entao Bruno,
> > > >
> > > > Dessa forma altero todos os ICMS de 18.00 para 17.00, Gostaria de
> > > > alterara somente o ICMS que estiver entre a palavra "giz" e a
proxima
> > > > palavra "pc".
> > > >
> > > > De qualquer forma obrigado,
> > > >
> > > > se alguem tiver mais alguma dica agradeco ?
> > > >
> > > > --- Em
address@hidden<shell-script%40yahoogrupos.com.br>
> > <shell-script%40yahoogrupos.com.br>,
> > > > "Bruno Gunter Fricke"
> > > > <gunter@> escreveu
> > > > >
> > > > >
> > > > > Marcos, seria algo como:
> > > > >
> > > > > $ sed -e "s/$18.oo/$17.oo/g" dbf
> > > > >
> > > > >
> > > > > ----- Original Message -----
> > > > > From: Marcos Gattermeyer
> > > > > To:
address@hidden<shell-script%40yahoogrupos.com.br>
> > <shell-script%40yahoogrupos.com.br>
> > > > > Sent: Friday, March 09, 2007 2:17 PM
> > > > > Subject: [shell-script] Editar um arquivo de uma linha com SED
> > > > >
> > > > >
> > > > > Boa Tarde,
> > > > > A sequencia abaixo se trata de um arquivo DBF, com 5 campos
> > > > > COD
> > > > > PRODUTO
> > > > > ICMS
> > > > > TIPO
> > > > > VALOR
> > > > >
> > > > > k Â&CODC
> > > > > PRODUTOC
> > > > > ICMSNTIPOCVALORN
> > > > > 100 teste 18.00pc 20.00 101 giz 18.00pc
> > > > > 1.00 102 lapis 18.00pc 102.00
> > > > >
> > > > > Todo o DBF e considerado como uma unica linha, sendo assim
> > gostaria de
> > > > > pesquisar e trocar somente a sequencia ICMS de "18.00" para
"17.00"
> > > > > que vem apos a palavra "giz", e mantenha o resto intacto.
> > > > >
> > > > > tentei:
> > > > >
> > > > > sed ':a;s/^\([^giz]*,[^pc]\+\)18.00/\117.00/;ta' -i arquivo.dbf
> > > > >
> > > > > (peguei este exemplo na internet)
> > > > >
> > > > > Mas nao funcionou.
> > > > >
> > > > > Se alguem puder me ajudar, agradeço
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > [As partes desta mensagem que não continham texto foram
removidas]
> > > > >
> > > >
> > > >
> > > >
> > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> >
> >  
> >
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




reply via email to

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