「awk」を使用してファイル内の複数のデータサブセットの中で最大値を決定するには?

「awk」を使用してファイル内の複数のデータサブセットの中で最大値を決定するには?

おはようございます、

私はawkファイル内の複数のデータセットの最大値を使用して決定しようとしています。データがあるとしましょう。

    1 2 3
  4 5 6 7 8
  9 8 7 6 5
    4 3 2
    1 2 3
  4 6 7 8 7
  7 8 7 6 5
    4 3 2

私は出力が次のようになります:

9
8

4行ごとにデータのサブセットなので、9は最初のセットの最大値、8は2番目のセットの最大値です。最初のコードブロックの上のデータを次にパイプします。

awk 'NR%4<4 || NR==4 {for(i=1;i<=NF;i++) if($i>maxval) maxval=$i;}; END { print maxval;}' > file

ただし、ファイル全体の最大値のみを返します。

9

1つのawkコマンドでn行(ここではn = 4)ごとに最大値を印刷できるかどうかを知りたいです。それとも分割する必要がありますか?私はNR%4 <4 || NR == 4残りの関数が4行目に実行するように指示すると思いましたが、すべてのデータを見て1つの「maxval」だけを決定するようです。

ありがとうございます。

ベストアンサー1

awk '{for(i=1;i<=NF;i++) if($i>maxval) maxval=$i;}
     NR%4==0 { print maxval ; maxval= -1}'

おすすめ記事