awkを使用して、特定のテキスト識別子の下の列にある特定の数値の平均を計算するのに問題があります。2 つの列のデータがあり、1991 年 1 月に繰り返される共通の識別子で平均的なキーイングを開始しようとしています。したがって、awk は 1991 年 1 月から始まるすべての行の平均を計算する必要があります。これは、次の 21 行を使用して、1991 年から 2012 年までの合計行数の平均 = 22 行を使用して繰り返されます。目的の出力は、1991 年から 2012 年までのすべての 1 月 (01) の各 TextID/Name エントリの平均です。以下に示します。
TextID/名前 1 平均: 50.34 TextID/名前 2 平均: 45.67 TextID/名前 3 平均: 39.97 ...
サンプルデータ:
TextID/Name 1
01/1991, 57.67
01/1992, 56.43
01/1993, 49.41
..
01/2012, 39.88
TextID/Name 2
01/1991, 45.66
01/1992, 34.77
01/1993, 56.21
..
01/2012, 42.11
TextID/Name 3
01/1991, 32.22
01/1992, 23.71
01/1993, 29.55
..
01/2012, 35.10
continues with the same data for TextID/Name 4
以下に示すこのコードを使用して回答を得ていますが、平均は特定の識別子行の前で計算を開始しており、その行 (01/1991) ではありません。
awk '$1="01/1991" {sum+=$2} (NR%22==0){avg=sum/22;print"Average: "avg;sum=0;next}' myfile
解決策の感謝と説明は大歓迎です! 元の回答を編集して説明を追加しました-ありがとうございます。