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 06:55:23 -0700 (PDT)

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."

------------ --------- ---------


 

      

    
    
        
         
        
        








        


        
        


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