Enviado em 20/12/2011 - 06:54h
Bom Dia amigos do forumwhile read linha do denominadorM=`cat $linha | wc -l` if [ $denominadorM = 1 ];then temp01=$(cat $linha | sed '1!d' | cut -d' ' -f5) numerador=$temp01 fi if [ $denominadorM = 2 ];then temp01=$(cat $linha | sed '1!d' | cut -d' ' -f5) temp02=$(cat $linha | sed '2!d' | cut -d' ' -f5) numerador=$(echo "scale=2; $temp01 + $temp02" | bc) fi if [ $denominadorM = 3 ];then temp01=$(cat $linha | sed '1!d' | cut -d' ' -f5) temp02=$(cat $linha | sed '2!d' | cut -d' ' -f5) temp03=$(cat $linha | sed '3!d' | cut -d' ' -f5) numerador=$(echo "scale=2; $temp01 + $temp02 + $temp03" | bc) fi . . .
Enviado em 20/12/2011 - 10:35h
Oi,Enviado em 20/12/2011 - 11:19h
VOcê pode usar arrays em shell VALOR[]while read linha do denominadorM=`cat $linha | wc -l` for i in $(seq $denominadorM) do temp[$i]=$(cat $linha | sed "$i!d" | cut -d' ' -f5) done # fim do for numerador=$(echo "scale=2; $(echo ${temp[@]} | tr ' ' '+')" | bc) .... done # fim do while
Enviado em 20/12/2011 - 13:39h
Se aqueles desvios condicionais foram por conta de espaços nas linhas uma configuração da variável de ambiente IFS pode resolver além de prevenir um possível estouro de memória caso existam muitas parcelas na soma final, tipo umas 1000000 de linhas de entrada. :D# Versão que reduz perigo de sobrecarga de memória # caso existam muitas entradas. # Dica: use man bash e procure por IFS OIFS=$IFS IFS=$( echo -e "\n" ) numerador=0; while read linha do numerador=$( echo "escale=2; $( echo $linha | cut -d' ' -f5 ) + $numerador" | bc ) done < 'arq.txt' IFS=$OIFS
Enviado em 20/12/2011 - 13:58h
Cara... não sei eu saquei direito o seu problema... acho que você não queria ter que criar vários "IFS" no seu código, né?#!/bin/bash var="" f1(){ for ((i=0;i<=`cat $1 | wc -l`;i++));do var=$var"`cat $linha | sed '$i!d' | cut -d' ' -f5` + " done var=$var"0" numerador=`echo \" scale=2; $var | bc \"` } while read linha;do f1 $linha done < arquivo.txt
Enviado em 20/12/2011 - 22:26h
Você pode consultar aqui: http://vivaolinux.com.br/dica/Tutoriais-de-Shell-Scripts/Enviado em 21/12/2011 - 10:33h
Muito obrigado a todos.Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Criando uma Infraestrutura para uma micro Empresa
Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalando o Pi-Hole versão v5.18.4 depois do lançamento da versão v6.0
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
impressora de rede via dominio - gpo (1)
Discussão sobre monitoramento da integridade de arquivos (6)
Problema no boot do Linux Mint Cinnamon 22 (4)