Operações com valores em arquivo texto

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

[ Hits: 11.286 ]

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

plasadd

Script para Inicialização / Finalização do MRTG no boot

Convertendo man pages em PDFs (Versão CShell)

Clontexto

Script Admin PDC


  

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