Soma valores de uma lista (calculo notas, pontos, etc)

Publicado por Raimundo Alves Portela (última atualização em 28/07/2014)

[ Hits: 14.503 ]

Homepage: http://portelanet.com

Download somaNotas.sh

Download 1406122542.somaNotas.sh (versão 2)




Script simples, para fazer a soma de valores a partir de uma lista de itens e seus valores.

Pode ser usado para cálculo de notas, pontos, etc.

Arquivo lista.txt:
========
Pedro 7
Maria 8
Pedro 8
Maria 6.5

Exemplo de uso:
$ ./somaNotas.sh lista.txt
Pedro 15
Maria 14.5

  



Versões atualizadas deste script

Versão 2 - Enviado por Vitor Augusto M. Pio em 23/07/2014

Changelog: - Simplificação funcionando.

Download 1406122542.somaNotas.sh


Esconder código-fonte

#!/bin/bash
# Por: Raimundo Portela - [email protected]
# Somar notas a partir de uma lista, independente da ordenação da mesma
# Exemplo de lista:
# Pedro 7
# Maria 8
# Pedro 8
# Maria 6.5
# Exemplo de uso:
# ./somaNotas.sh lista.txt
#=========================================================
ARQUIVO="$1"
SOMA=0
OLD=$( sort $ARQUIVO | head -n1 | cut -d' ' -f1 )
while read LINHA
do
   NEW=$( echo $LINHA | cut -d' ' -f1 )
   VALOR=$( echo $LINHA | cut -d' ' -f2 )
   if [ "$NEW" = "$OLD" ]; then
      SOMA=$( echo "$SOMA + $VALOR" | bc ) 
   else
      echo "$OLD $SOMA"
      SOMA=$VALOR
   fi
   OLD="$NEW"
done < <( sort $ARQUIVO )
# para o ultimo registro
echo "$OLD $SOMA"

Scripts recomendados

Criando uma lixeira [Melhorado]

Monitoramento automático de logs e envio por e-mail – Fácil e explicado

Script para reconhecer MP4Player no Ubuntu

Banco de Dados Pessoais Interativo

mysql.sh


  

Comentários
[1] Comentário enviado por jarlisson em 06/08/2012 - 22:55h

Rai, por que o '< <' ? qual a diferença pro '<<'?

[2] Comentário enviado por rai3mb em 07/08/2012 - 23:05h

O < <(...comando...) foi necessário pra colocar o ...comando... dentro do contexto do while ( no caso precisei por causa da variável $ARQUIVO ).
* Descobrir esse recurso recentemente ;-)

O shell é sempre cheio de surpresas ;-)


[3] Comentário enviado por vitinho217 em 23/07/2014 - 10:35h

Eu executei o script mas ao final ele não exibiu a soma ...

[4] Comentário enviado por cleberc em 29/10/2014 - 16:02h

Testei e funcionou bem!
Poderia explicar passo a passo o processo? estou iniciando no shell e fiquei meio perdido...
vlw



Contribuir com comentário