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

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

Re: Operações de soma e subtração


From: Emiliano Chemello
Subject: Re: Operações de soma e subtração
Date: Wed, 27 Feb 2008 19:30:44 -0000
User-agent: eGroups-EW/0.82

Vamos a um exemplo mais claro:

####
space
1
observables
energy au
-17109.649529926 1.0
end
shift
-1605.7
####

Estas linhas se repetem em vários pontos do arquivo. O que preciso é 
somar (ou subtrair) um número a '-17109.649529926' e o resultado 
desta operação colocar no lugar de '-17109.649529926'. Só que preciso 
fazer isto para todos os primeiros valores da linha abaixo da 
expressão 'energy au'. O valor somado ou subtraido é mesmo. Por 
exemplo, desejo somar 1500 a todos os valores indicados no arquivo.

Obrigado!

Emiliano



--- Em address@hidden, "Emiliano Chemello" 
<chemelloe@...> escreveu
>
> Olá,
> 
> O arquivo tem vários valores desejados, todos abaixo da
> expressão 'energy au'. Só o primeiro valor da linha abaixo da
> expressão interessa modificar, o segundo valor, que é sempre '1.0'
> deve continuar lá.
> 
> Preciso que o primeiro valor da linha abaixo da expressão 'energy 
au'
> tenha seu valor alterado por uma soma ou subtração de um número
> (sempre o mesmo número). Preciso somar ou subtrair números decimais.
> O resultado desta soma deve substituir o valor original.
> 
> Desde já agradeço!
> Um abraço!
> 
> Emiliano
> 
> 
> --- Em address@hidden, "mop" 
> <mop2bky4mz5tyjwa8ersp7hrg5u9qn@> escreveu
> >
> > Rabiscando uma função rápida, apelando para o programa bc e 
> considerando que:
> > - somente a primeira linha que sucede cada campo chave é calculada
> > - so um campo chave é informado por vez
> > - uma única constante é adicionada, devendo seu sinal ser 
informado
> > - não entendi bem a linha numérica... :p
> > 
> > #--------------
> > add(){
> > P=;[ -${1:0:1} = -- -o +${1:0:1} = ++ ]&&\
> > while read;do
> >  [ $P ]&&{ P=
> >   REPLY="`echo ${REPLY%% *}$1|bc` ${REPLY#* }"
> >  }
> >  [ "$REPLY" == "$2" ]&&P=1
> >  echo "$REPLY"
> > done<file||echo error
> > }
> > add -12.123 "energy au"
> > add +3.123 "energy au"
> > #-------------------
> > 
> > Como recomendo de praxe, cole na linha de comando de um usuário 
> miserável e 
> > mande ver.
> > A função fica disponível, assim pode testar seus próprios valores.
> > 
> > Não esqueça de fazer um link file para seu arquivo, ou acerte o 
nome
> > na função. Se ele for variável pode ser inserido como parâmetro 3.
> > A saída é em tela, para arquivo basta acrescentar na linha de 
> comando:
> > 
> > add .....  >arq.test
> > 
> > Cuidado com os bugs, mas deve servir para algo... :)
> >
>




reply via email to

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