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 [email protected], "Flavio Junior" <[EMAIL PROTECTED]> 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 > > [EMAIL PROTECTED]:~$ 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 > > [EMAIL PROTECTED]:~$ 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 > > [EMAIL PROTECTED]:~$ > > 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 <[EMAIL PROTECTED]> 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 [email protected] <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 [email protected]<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: [email protected]<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] >
