各行の平均を計算する方法(各行の最初の値を除く)は何ですか?

各行の平均を計算する方法(各行の最初の値を除く)は何ですか?

各行の平均を計算しますが、最初の値は除外します。例:

1   12 13 14 15 16 17 18   
2   21 22 23 24 25 26 27 28 29     
... --------

私が望む出力は次のとおりです。

1  15   
2  25   
....

答え1

一つずつperl:

perl -MList::Util=sum -ane 'printf "%s %s\n", shift @F, sum(@F)/(@F?@F:1)' file
1 15
2 25

答え2

以下を試すことができますawk

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

結果:

1 15
2 25

関連情報