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 [email protected], "mop" <[EMAIL PROTECTED]> 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... :) >
