Operações com valores em arquivo texto

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

[ Hits: 11.302 ]

Homepage: http://portelanet.com

Download opComValorEmArq.sh




Um script simples que ler um arquivo texto passado como parâmetro e retorna como resultado:
Soma dos Valores, Maior Valor, Menor Valor e Média dos Valores.

Antes de fazer os cálculos, são feitos alguns tratamentos para não ler as linhas vazias do arquivo e ler apenas números.

Exemplo de conteúdo de arquivo texto a ser fornecido:
arquivo.txt
-------inicio----------
Valor 2
4
6 quero isso
a

-------fim------------
Espero que sirva para mais pessoas, assim como eu, aprenderem um pouco mais de Shell Script.

Obrigado.

  



Esconder código-fonte

#!/bin/bash
# Autor: Raimudo A. Portela <rai3mb@gmail.com>
# Script simples que ler um arquivo texto e traz como resultado cálculos
# matemáticos básicos, como soma, maior, menor e média dos valores do arquivo.

[ -z "$1" ] && echo "Forneça o nome de um arquivo como parâmetro" && echo && \
echo "./opComValorEmArq.sh nomedoarquivo" && echo && exit

! [ -f "$1" ] && echo "O parâmetro [ $1 ] não é um arquivo" && exit

SOMA=0

# Conta as linhas que tenham conteúdo
LINHAS=$(cat "$1" | egrep '[^(^$)]' | egrep '[0-9]+' | wc -l | cut -d" " -f 1)

for i in $(seq $LINHAS)
do
   VALORDALINHA=$(cat "$1" | egrep -o '[0-9]+' | head -n $i | tail -n 1)
   #soma
   ! [ -z "$VALORDALINHA" ] && SOMA=$(($SOMA+$VALORDALINHA))
   
   #maior
   [ -z "$MAIOR" ] && MAIOR="$VALORDALINHA"
   [ "$VALORDALINHA" -gt "$MAIOR" ] && MAIOR="$VALORDALINHA"
   
   #menor
   [ -z "$MENOR" ] && MENOR="$VALORDALINHA"
   [ "$VALORDALINHA" -lt "$MENOR" ] && MENOR="$VALORDALINHA"
done

#media
MEDIA=$(($SOMA/$LINHAS))

echo "A soma dos valores é: $SOMA"
echo "O maior valor é: $MAIOR"
echo "O menor valor é: $MENOR"
echo "A média dos valores é: $MEDIA"
#.EOF

Scripts recomendados

Identificando sinal de rede sem fio em modo texto

Script Basico

Meu script em shell entendo chamadas ao sistema do mesmo

Copiando o conteudo de um CDROM ou DVDROM.

Telegram direto do site


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts