如何使用unix计算列的平均值?

时间:2017-04-20 17:52:14

标签: linux awk

我有一个看起来像这样的文件:

length_1    10   5   7 
length_2     8   3   2 
length_3     3   2   1 
..
length_999   1   5   4 

我希望计算3列的平均值(平均值):

length_1    7.3333
length_2    4.3333 
length_3    2
..
length_999  2.6666 

在linux中有一个简单的方法吗?

2 个答案:

答案 0 :(得分:3)

使用awk

awk '{print $1" "($2+$3+$4)/3}' file

答案 1 :(得分:3)

更一般地说,对于任意数量的列

$ awk -v OFS='\t' 'NF>1 {s=0; for(i=2;i<=NF;i++) s+=$i; 
                         print $1, s/(NF-1)}' file

length_1        7.33333
length_2        4.33333
length_3        2
length_999      3.33333