2017-04-20 10 views
2

私は、このようなファイルを持っている: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でこれを行う簡単な方法があります?

+0

任意の数のためにこれは非常に類似している:[行当たりの平均を取得する(http://stackoverflow.com/questions/ 19984012/get-average-per-line) –

+1

最後の平均値が間違っていることに注意してください – karakfa

答えて

3

使用awk

awk '{print $1" "($2+$3+$4)/3}' file 
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 
関連する問題