Bash Sum Números médios em arquivos

0

Eu tenho uma série de arquivos com 2 (duas) linhas. A primeira linha contém um número inteiro (1-100), enquanto a segunda linha contém um número decimal (1.0000-99.9999). Preciso obter a soma da primeira linha e a média da segunda linha, ou seja:

awk '{sum += $1} {avg / $2} NEXT {print sum} END {print avg}' *log

Exemplo:

 1log
     20
     4.2
 2log
     34
     1.2

Onde a saída ficaria assim:

 54
 2.7
    
por Ken J 31.03.2014 / 16:46

1 resposta

0

Com o awk, use a variável FNR , que contém o número do registro do arquivo atual.

awk '
  FNR==1 {sum1 += $1}
  FNR==2 {sum2 += $1; count2++}
  END {print sum1; print (sum2/count2)}
' 1log 2log

ou

paste 1log 2log | {
  read n1 n2; echo $((n1+n2))
  read n1 n2; bc <<< "($n1+$n2)/2"
}
    
por 31.03.2014 / 18:59

Tags