列の最大値を含む行の次の値をどのように印刷しますか?

列の最大値を含む行の次の値をどのように印刷しますか?

列の最大値を含む行の次の値をどのように印刷しますか?

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"

おすすめ記事