Operações com valores em arquivo texto
Publicado por Raimundo Alves Portela (última atualização em 18/07/2011)
[ Hits: 11.438 ]
Homepage: http://portelanet.com
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.
#!/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
Script para conexão de provedor à radio
Script Multifunção (Ubuntu e derivados)
Script para ejetar o seu cdrom numa determinada hora
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
como instalo panfrost-dri e o driver panfrost fork , ou panfrost (16)
problema no debian que poderia ser corrigido por comando? (12)
Usar uma VM dentro do meu notebook como firewall para um dispositivo e... (0)
Eu tive esse erro aqui depois de de baixar o HyprLand Ubuntu na versão... (1)