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

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

Re: [shell-script] Pegar valor em um arquivo e atualizar


From: Fábio Batista
Subject: Re: [shell-script] Pegar valor em um arquivo e atualizar
Date: Tue, 21 Dec 2004 17:58:22 -0300

Dá pra tentar adaptar este monstrengo.
Ele incrementa todos os números entre as diretivas $inc nnn$.

[fabio@elefante testes]$ cat incrementa.txt
Numeros a incrementar:
Incrementar: $inc 12$

[fabio@elefante testes]$ sed -r "s/(\\\$inc )([0-9]+)(\\\$)/\1'\`expr
1 + \2\`'\3/g;s/.*/echo '&'/" incrementa.txt
echo 'Numeros a incrementar:'
echo 'Incrementar: $inc '`expr 1 + 12`'$'

[fabio@elefante testes]$ sed -r "s/(\\\$inc )([0-9]+)(\\\$)/\1'\`expr
1 + \2\`'\3/g;s/.*/echo '&'/" incrementa.txt | sh
Numeros a incrementar:
Incrementar: $inc 13$

Fábio David Batista
address@hidden
http://nerd-o-matic.blogspot.com

On Tue, 21 Dec 2004 17:54:23 -0200, Rodrigo Baroni
<address@hidden> wrote:
>  On Tue, 21 Dec 2004 17:49:11 -0200, Rodrigo Baroni
>  <address@hidden> wrote:
>  > On Tue, 21 Dec 2004 16:24:01 -0300 (ART), Leonardo Vieira
>  > <address@hidden> wrote:
>  > >
>  > > Ola galera, estou querendo fazer um script que leia um
>  > > arquivo pegue um valor a partir de uma determinada
>  > > posição e atualize esse valor, por exemplo:
>  > >
>  > > [INT_PAN_2005.SES_INT_REGRAS_ALOCACAO_PAR]
>  > > $$REGRA_ATUAL=144
>  > >
>  > > Esse seria o arquivo gostaria de pegar esse valor 144
>  > > do arquivo e subtrair de 1 e atualizar esse arquivo.
>  > > Obs:
>  > > 1 - A string '$$REGRA_ATUAL=' é fixa, ou seja, posso
>  > > pegar sempre a partir da posição 15
>  > > 2 - Esse número pode ter até 4 casas, exemplo: 1000.
>  > >
>  > > Muito obrigado pela atenção de todos!
>  > >
>  > > Leonardo Vieira
>  > > Consultor ETL
>  > 
>  > 
>  >   Olá Leonardo,
>  > 
>  >     Em uma linha de comando -  aí vai ela (digite sem quebra de
>  > linha(enter)), e subtitue <file> pelo nome do seu arquivo. Teste em
>  > uma cópia dele primeiro! (faça backups) :
>  > 
>  >       VALUE=$(sed -n '15 s/.*=//p' file); NEW_VALUE=$((VALUE + 1));
>  > sed "15 s/$VALUE/$NEW_VALUE/" file > file.tmp ; mv file.tmp file
>  
>    Ops, lendo melhor, entendi errado o que vc havia dito. Pensei que
>  tal valor estaria sempre na linha nro 15, mas na verdade vc quiz dizer
>  na posicao 15 neh? - Aí segue corrigido:
>  
>  VALUE=$(sed -n 's/$$REGRA_ATUAL=//p' file); NEW_VALUE=$((VALUE + 1));
>  sed "s/$VALUE/$NEW_VALUE/" file > file.tmp ; mv file.tmp file
>  
>  Rodrigo Ferreira Baroni
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      "..  mas  se  é  algo  cujo  conhecimento  a humanidade poderá se
> beneficiar
>  tremendamente, eu não devo reter pra mim. A proposta da ciência e da 
> tecnologia
>  é  desenvolver  informações  úteis  para  a  humanidade para ajudar as
> pessoas a
>  viverem suas vidas de forma melhor. Se prometemos reter essa informação, se
> man-
>  tivermos segredo, então estaremos traindo a missão de nossa área."
>            -Richard Stallman. President of the Free Software Foundation
>                                    www.fsf.org
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>  
>  
> 
>  ---------------------------------------------------------------------
>  Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
>  ---------------------------------------------------------------------
>  Sair da lista: address@hidden
>  ---------------------------------------------------------------------
>  Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
>  ---------------------------------------------------------------------
>  
> 
>  
>  
>  Yahoo! Grupos, um serviço oferecido por: 
>  
>  
>  
>  
>  
>  
>  ________________________________
>  Links do Yahoo! Grupos
>  
> Para visitar o site do seu grupo na web, acesse:
> http://br.groups.yahoo.com/group/shell-script/
>   
> Para sair deste grupo, envie um e-mail para:
> address@hidden
>   
> O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
> Yahoo!.


reply via email to

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