Operações com valores em arquivo texto
Publicado por Raimundo Alves Portela (última atualização em 18/07/2011)
[ Hits: 11.202 ]
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
Personalizar teclado, alterar função de uma tecla
Instalação do LibreOffice3.5.3 via dpkg
Backup com envio automático de e-mails usando o tar
debcreate - Script que facilita o uso do dpkg-deb
Nenhum comentário foi encontrado.
DOOM clássico (quase) vanilla e um pouco melhorado
Mamãe, quero descompactar e também compactar arquivos no terminal!
Instalando Micosoft Edge no Fedora 40
junest - Mini Arch Linux dentro de sua Distro
Rescuezilla - o Clonezilla com interface gráfica e ferramentas
Latte Dock, um dock de aplicativos com várias opções de configuração para o KDE Plasma
Porque não tenho os 450GB do meu HD ? Só está livre 15GB (3)
sinto falta do efeito atlantis do compiz. (2)