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

我有一个如下所示的文件:

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中做到这一点?

使用awk

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

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

 $ 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