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




---------------------------------------------------------------------
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: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
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:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a