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: 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]



reply via email to

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