列の最大値を含む行の次の値をどのように印刷しますか?
for f in a*; do
awk 'BEGIN{a= 0}{if ($2>0+a) a=$2}{if($2 = a) b=$1} END{print FILENAME, b}' "$f"
done
ㅏ*
4 5
6 6
5 5.5
7 55
希望する結果
a45 7
ベストアンサー1
繰り返されるキーフィールドの最初の値を印刷するか最後の値を印刷するかによって、これを行う正しい方法は最後の値を印刷することです。
awk 'NR==1{max=$2} $2>=max{max=$2; val=$1} END{print FILENAME, val}' "$f"
または最初のものを印刷します。
awk 'NR==1{max=$2; val=$1} $2>max{max=$2; val=$1} END{print FILENAME, val}' "$f"