Pular para o conteúdo

Operações com valores em arquivo texto

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.
Raimundo Alves Portela rai3mb
Hits: 11.750 Categoria: Shell Script Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

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.
Download opComValorEmArq.sh Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Iniciando Linux com tudo

FirewallIptables.sh

Formatando disquetes em modo texto

Matrix - Terminal Comunication

Agendamento para desligar ou reiniciar

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.