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



» Screenshot
Linux: Tuquito Linux
Por pinduvoz
» 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)   [ 1995 hits ]

Login: rai3mb, 921953 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 Inclusão e exclusão de usuários num PDC
   Script Linux recomendado Checando a bateria do seu notebook com Ubuntu instalado
   Script Linux recomendado Menu + Relógio em tempo real
   Script Linux recomendado zsh: Cliff random number generator
   Script Linux recomendado Interface para tarefas básicas

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.