awkで最大値

a 11
b 43
c 89
d 62
e 35

こんなデータがhoge.txtとしてあるとき、最大値やら平均やらを出力するコマンドはすぐに見つかったが、最大値を取るアルファベットを出力する場合に少し手こずったので書いておく。

まずは最大値を出力する場合。
$ cat hoge.txt | awk ‘{if(m<$2) m=$2 } END{print m}' 次に、アルファベットを出力する場合。 $ cat hoge.txt | awk '{if(m<$2) {m=$2; n=$1} } END{print n}' 要するにif文の後の実行文が二つになるので、中括弧を一つ増やせばよかっただけでした。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です