AWK は 1 行目から 3 行目を、4 行目から 6 行目を繰り返し減算して平均を求めます。

AWK は 1 行目から 3 行目を、4 行目から 6 行目を繰り返し減算して平均を求めます。

以下に示すように、数値リストを含むファイルがあります。

4.90889
4.92681
4.99236
5.29358
5.3115
5.37706
5.9354
5.95332
6.01888

最初の数字から3番目の数字を引いた後、次の3行ブロックを再帰的に処理し、結果を保存して平均化する必要があります。私はawkで平均を求める方法を知っていますが、初めてするときは迷子になります。

上記の数字を使用すると、次のようになります。

4.99236 - 4.90889 = 0.08347
5.37706 - 5.29358 = 0.08348
6.01888 - 5.9354 = 0.08348

(0.08347 + 0.08348 + 0.08348)/3 = 0,0834766666667

答え1

いくつかのモジュロタスクの場合:

awk '
  FNR%3 == 1 {last = $0} 
  FNR%3 == 0 {sum += $0 - last; n++} 
  END {print (n > 0 ? sum/n : 0)}
' file

関連情報