create sum, avg e min de arquivo

2

Eu tenho essa pergunta de lição de casa:

  

cria a função agg, o primeiro argumento é nome do arquivo, o segundo será soma, avg ou min. O script calculará a soma, média ou mínima (dependendo do argumento) dos números no arquivo (1. arg.). Considere apenas um arquivo de coluna, um número por linha.

Eu criei esta função:

agg(){

    cat  | awk '{sum+=} END{print "sum of first column = "sum}'
    cat  | awk '{sum+=} END { print "Average = ",sum/NR}'
    cat  | awk 'min=="" ||  < min {min=} END{ print "min="min}'

}
agg y

meu script funciona bem, mas sem os argumentos. Como posso incorporar os argumentos? obrigado !!

    
por Martin Yeboah 24.06.2015 / 16:55

1 resposta

5

Você pode usar o caso aqui:

case "" in
  sum) awk '{sum+=} END{print "sum of first column = "sum}' "";;
  avg) awk '{sum+=} END { print "Average = ",sum/NR}' "";;
  min) awk 'min=="" ||  < min {min=} END{ print "min="min}' "";;
esac
    
por Wayne_Yux 24.06.2015 / 17:01