[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] arquivo campo-igual-valor
From: |
denis costa |
Subject: |
Re: [shell-script] arquivo campo-igual-valor |
Date: |
Thu, 30 Jul 2009 13:34:47 -0700 (PDT) |
Tudo bem, Lucien?
eu falei do sed e do awk pois achei que seriam mais faceis de manipular textos,
não que as soluções obrigatóriamente devessem ser com sed/awk.
A sua solução é muito boa e resolve meu problema (momentâneamente, pois têm
outros problemas que encontrarei...).
Muito obrigado aos três que tentaram me ajudar!!!
ps: ainda queria saber pq as outras soluções não funcionaram...
--- Em qui, 30/7/09, Lucien Raven <address@hidden> escreveu:
De: Lucien Raven <address@hidden>
Assunto: Re: [shell-script] arquivo campo-igual-valor
Para: address@hidden
Data: Quinta-feira, 30 de Julho de 2009, 13:23
--- Em qui, 30/7/09, denis costa <deniscostadsc@ yahoo.com. br> escreveu:
> A solução do jimmy deu erro de
> sintaxe, e debugar awk (só por enquanto, espero) vai além
> do meu conhecimento! ! :(
>
> já a do Marvin pega o campo do arquivo temporário, mas
> quando escreve no arquivo, recria o arquivo apenas com os
> campos modificados, vide redirecionamento ">". E o sed
> também não é meu amigo... ainda!!!
>
> o sed não consegue escrever apenas as linhas modificadas
> sem redirecionamento? ???
>
> Obrigado pela ajuda
>
> --- Em qui, 30/7/09, jimmy <jimmy.tty@gmail. com>
> escreveu:
>
> De: jimmy <jimmy.tty@gmail. com>
> Assunto: Re: [shell-script] arquivo campo-igual- valor
> Para: shell-script@ yahoogrupos. com.br
> Data: Quinta-feira, 30 de Julho de 2009, 9:13
>
>
> On Thu, Jul 30, 2009 at 04:00:42AM -0700, denis costa
> wrote:
>
>
> > Bom dia a todos
>
> > Estou desenvolvendo um programa que pega
> valores em um arquivo de
>
> > configuração "temporário", com o
> formato campo=valor.
>
> >
>
> > campo1=valor1
>
> > campo3=valor3
>
> >
>
> > e modifico o valor em um outro arquivo de
> configuração, caso o campo
>
> > exista no arquivo temporário:
>
> >
>
> > #antes do programa
>
> > campo1=valornulo
>
> > campo2=valorquasenu lo
>
> > campo3=valorquesumi u
>
> > campo4=valorcorreto
>
> >
>
> > #depois do programa
>
> > campo1=valor1
>
> > campo2=valorquasenu lo
>
> > campo3=valor3
>
> > campo4=valorcorreto
>
> >
>
> > E eu já demonstrei aqui na lista que
> não domino bem os processadores de
>
> > texto! ;p
>
> > Como faço isso com sed ou awk por
> exemplo????? ?
>
> >
>
> > Desde já abradeço a futura ajuda
>
> > Abraço
>
> >
>
> > ____________ _________ _________
> _________ _________ _________ _
>
>
>
> usando o gnu awk eu faria o seguinte:
>
>
>
> $ gawk -F= 'FILENAME==ARGV[ 1]{h[$1]= $2}FILENAME=
> =ARGV[2]{ if($1 in h){print $1 FS h[$1]}else{print} }'
> temp.txt conf.txt
>
>
>
> onde:
>
>
>
> $ cat temp.txt
>
> campo1=valor1
>
> campo3=valor3
>
>
>
> $ cat conf.txt
>
> campo1=valornulo
>
> campo2=valorquasenu lo
>
> campo3=valorquesumi u
>
> campo4=valorcorreto
>
>
>
> faça um teste.
>
>
>
> --
>
> "Não manejo bem as palavras
>
> Mas manipulo bem as strings."
>
> ------------ --------- ---------
Olá, Denis.
Sei que você pediu uma solução com sed/awk, mas se interessar uma abordagem
diferente... . sem usar editores, apenas manipulando os arquivos, com um porém:
se a variável existir no temp e não no conf, ela é inserida no conf.
# cat arqtemp
campo1=valor1
campo3=valor3
campo5=valor5
# cat arqconf
campo1=valornulo
campo2=valorquasenu lo
campo3=valorquesumi u
campo4=valorcorreto
# while read REG ; do NOMECAMPO=`echo $REG | cut -f 1 -d =` ; grep -v
$NOMECAMPO arqconf > arqconf.tmp ; mv -f arqconf.tmp arqconf ; done < arqtemp
# cat arqconf arqtemp | sort > arqconf.new
# cat arqconf.new
campo1=valor1
campo2=valorquasenu lo
campo3=valor3
campo4=valorcorreto
campo5=valor5
LR :>
____________ _________ _________ _________ _________ _________ _
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbusca dos.yahoo. com
____________________________________________________________________________________
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] arquivo campo-igual-valor, Marvin Lemos, 2009/07/30