Saturday, 11 February 2012

calculate avg and 90th percentile from awk command



Average:
cat <filename> |grep HOME|grep "Number of samples"|awk -F "," '{sum+=$2} END { print "Average = ",sum/NR}'


95th Percentile:
cat <filename> |grep HOME|grep "Number of samples"|awk -F "," '{print $2}' |sort -n|awk 'BEGIN{i=0} {s[i]=$1; i++;} END{print s[int(NR*0.95-0.5)]}'

2 comments:

  1. Hi, nice and easy, Thanks!

    You can simplify the last awk by scripting:

    awk '{s[NR-1]=$1} END{print s[int(NR*0.95-0.5)]}'


    ReplyDelete
  2. Hi,
    What is the meaning of NR*0.95-0.5, Can't we simply print NR*95?

    ReplyDelete