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

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

Re: [shell-script] Re: Editar um arquivo de uma linha com SED


From: Flavio Junior
Subject: Re: [shell-script] Re: Editar um arquivo de uma linha com SED
Date: Mon, 12 Mar 2007 10:03:05 -0300

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 <address@hidden> 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]