Operações com valores em arquivo texto

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

[ Hits: 11.168 ]

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

Mageia Perfeito

Adiciona usuário e máquinas PDC samba

Decodificador base64

Script para visualizar logs do squid

Facilitando a vida com Fedora 8


  

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