如何计算大图表中每行的行的中位数

时间:2016-05-16 22:46:35

标签: unix awk median

我在想awk可以做到这一点,我也可以使用unix或perl,如果那些也可以的话

说我的图表就像是

5 6 3 38 20 3 94 8 20
7 56 3 59 38 20 38 7 13
39 20 2 4 19 20 49 17 20

然后我希望它打印每个像

的中位数
8
20
20

感谢您

1 个答案:

答案 0 :(得分:1)

你可以这样做:

$ awk '{split($0,a);asort(a);mid=int(NF/2);NF%2!=0?median=a[mid+1]:median=(a[mid]+a[mid+1])/2;print median}' file.txt
8
20
20