[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 18:06:20 -0300 |
Já adaptei. Bem pobremente, mas tá adaptado.
[fabio@elefante testes]$ cat incrementa.sh
#!/bin/sh
FILE=$1 ; shift
PREFIX=$1 ; shift
SUFFIX=$1 ; shift
EXPRPREFIX=$1 ; shift
sed -r "s/($PREFIX)([0-9]+)($SUFFIX)/\1'\`expr $EXPRPREFIX
\2\`'\3/g;s/.*/echo '&'/" $FILE
[fabio@elefante testes]$ cat incrementa2.txt
[INT_PAN_2005.SES_INT_REGRAS_ALOCACAO_PAR]
$$REGRA_ATUAL=144
[fabio@elefante testes]$ sh incrementa.sh incrementa2.txt
'REGRA_ATUAL=' '' '2 + '
echo '[INT_PAN_2005.SES_INT_REGRAS_ALOCACAO_PAR]'
echo '$$REGRA_ATUAL='`expr 2 + 144`''
[fabio@elefante testes]$ sh incrementa.sh incrementa2.txt
'REGRA_ATUAL=' '' '2 + ' | sh
[INT_PAN_2005.SES_INT_REGRAS_ALOCACAO_PAR]
$$REGRA_ATUAL=146
Fábio David Batista
address@hidden
http://nerd-o-matic.blogspot.com
On Tue, 21 Dec 2004 17:58:22 -0300, Fábio Batista
<address@hidden> wrote:
> 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!.
>
- Pegar valor em um arquivo e atualizar, Leonardo Vieira, 2004/12/21
- Re: [shell-script] Pegar valor em um arquivo e atualizar, Rodrigo Baroni, 2004/12/21
- Re: [shell-script] Pegar valor em um arquivo e atualizar, Rodrigo Baroni, 2004/12/21
- Re: [shell-script] Pegar valor em um arquivo e atualizar, Fábio Batista, 2004/12/21
- Re: [shell-script] Pegar valor em um arquivo e atualizar,
Fábio Batista <=
- Testar processo, Alain, 2004/12/21
- Re: [shell-script] Testar processo, Rodrigo Baroni, 2004/12/21
- Re: [shell-script] Testar processo, Adriano da Silva Múfalo, 2004/12/22
- Re: [shell-script] Testar processo, Erino Guilherme de Andrade, 2004/12/22
- Re: [shell-script] Testar processo, Marcelo Beckmann, 2004/12/22
- Re: [shell-script] Testar processo, Viliam, 2004/12/22
- {Spam?} Re[2]: [shell-script] Testar processo, Rodrigo S Wanderley, 2004/12/23
- Re: [shell-script] Testar processo, Fabio Pires, 2004/12/23
- Re: [shell-script] Testar processo, Alain, 2004/12/23