2017-04-20 3 views
2

Ich habe eine Datei, die wie folgt aussieht:Wie kann ich mit Unix den Durchschnitt von Spalten berechnen?

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

Ich mag die durchschnittliche (mittlere) der 3 Spalten berechnet werden:

length_1 7.3333 
length_2 4.3333 
length_3 2 
.. 
length_999 2.6666 

Gibt es eine einfache Möglichkeit, dies in Linux zu tun ?

+0

Dies ist sehr ähnlich: [Erste Durchschnitt pro Zeile] (http://stackoverflow.com/questions/ 19984012/Durchschnittseinkommen pro Zeile) –

+1

Beachten Sie, dass Ihr letzter Durchschnitt falsch ist – karakfa

Antwort

3

Verwendung awk:

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

allgemeiner für beliebige Anzahl von Spalten

$ 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 
Verwandte Themen