Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Raimundo Alves Portela em (última atualização em 06/08/2012)   [ 1999 hits ]

Login: rai3mb, 922456 pontos

Homepage: http://portela.tendalinux.com

Download:


Descrição

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


[ Download: somaNotas.sh ]   [ Enviar nova versão ]

[ Esconder código-fonte ]

#!/bin/bash
# Por: Raimundo Portela - rai3mb@gmail.com
# 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
   Script Linux recomendado Twitter via https pelo terminal
   Script Linux recomendado Verificação de PostgreSQL
   Script Linux recomendado zipxback.sh
   Script Linux recomendado Relatório Diario Sarg com Compactação!
   Script Linux recomendado Compactado e descompactador bem interessantee

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 ;-)




Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.