awkのバグ(最小値を求める)

awkで最小値を求める

awkで最小値を求める際バグで改行が計算結果に入ってしまう場合がある。 その時は以下のように、最初に空行を削除してソートを行い、1行目を取り出すことで最小値を求めることができる。

awk '{print [任意の変数(ex.$2)]}' | grep -v '^\s*$' | sort -n | sed -n 1p

また、awk内で比較して最小値を求めることもできる。

awk 'NR==1{min=$2}{if(min>$2) min=$2} END{print min}'