aboutsummaryrefslogblamecommitdiff
path: root/bin/med.awk
blob: 83f0eb744ea1f42ba3d2e9194b343a51279ef609 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
                                     












                                                     
             


               
# Get the median of a list of numbers
{ vals[NR] = $1 }
NR > 1 && vals[NR] < vals[NR-1] && !warn++ {
    printf "med: Input not sorted!\n" > "/dev/stderr"
}
END {
    # Error out if we read no values at all
    if (!NR)
        exit(1)
    if (NR % 2) {
        med = vals[(NR+1)/2]
    } else {
        med = (vals[NR/2] + vals[NR/2+1]) / 2
    }
    print med
    if (warn)
        exit(1)
}