[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... :)
> >
>