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

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

Re: [shell-script] arquivo campo-igual-valor


From: Lucien Raven
Subject: Re: [shell-script] arquivo campo-igual-valor
Date: Thu, 30 Jul 2009 09:23:16 -0700 (PDT)

--- Em qui, 30/7/09, denis costa <address@hidden> 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 <address@hidden>
> escreveu:
> 
> De: jimmy <address@hidden>
> Assunto: Re: [shell-script] arquivo campo-igual-valor
> Para: address@hidden
> 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=valorquasenulo
campo3=valorquesumiu
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=valorquasenulo
campo3=valor3
campo4=valorcorreto
campo5=valor5


LR :>


      
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com


reply via email to

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