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