如何打印包含列最大值的行中的下一个值?
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
A*
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"