Operações com valores em arquivo texto
Publicado por Raimundo Alves Portela (última atualização em 18/07/2011)
[ Hits: 11.711 ]
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
Calcular tamanho ideal da memória SWAP
Automatizando a Instalação do Firefox no Ubuntu 9.04 Jaunty Jackalope
SPEEDY: Adicionando DNS no Resolv.conf
Reconhecer drive conectado ou desconectado (básico)
Nenhum comentário foi encontrado.
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
Configurando o Cairo Dock individualmente em ambientes diferentes na mesma maquina
Calculadoras online gratuitas para o dia a dia do usuário Linux
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Governo da França vai trocar Windows por Linux (3)
Warsaw não é reconhecido no Google Chrome 147.0.7727.55 (2)
Epson L3250 só imprime se remove e conectar o cabo usb (1)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (4)









