[awk] 指定した列の最大値を求める

作成日: 2026年09月15日

awk では、各行の値を比較することで指定した列の最大値を求めることができます。

例えば、下記の内容の scores.txt ファイルを用意します。

Alice 72
Bob 91
Carol 85

2列目の最大値を求めるには、下記のように実行します。

awk 'NR == 1 || $2 > max {max=$2} END {print max}' scores.txt

NR == 1 のときに最初の値を max に代入し、2行目以降は $2 > max の場合だけ max を更新します。最初の値で初期化するため、すべての値が負数の場合でも正しく最大値を求められます。

実行結果は下記のとおりです。

91
awk Shell command