Operações com valores em arquivo texto

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

[ Hits: 10.642 ]

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 <[email protected]>
# 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

backup /home e /etc no crontab

Script para ativar a interface de rede

Cálculo do fatorial

Administração de usuários Linux

Backup de Diretórios


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts