Operações com valores em arquivo texto
Publicado por Raimundo Alves Portela (última atualização em 18/07/2011)
[ Hits: 11.286 ]
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 Inicialização / Finalização do MRTG no boot
Convertendo man pages em PDFs (Versão CShell)
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta