我有一个像这样的简单直方图:
1.5 1.34
2.5 5.23
3.5 7.34
4.5 4.23
5.5 3.23
6.5 2.22
7.5 1.94
8.5 5.43
9.5 9.13
我需要在第一个最大值之后找到第二列的最小值,并打印出第一个列的相应值。所以我应该得到这个输出:
7.5 1.94
有人能为此提出一个很好的解决方案吗?
答案 0 :(得分:2)
awk 'NR == 1 {mx=$1;my=$2}
$2 < my {mx=$1;my=$2}
$2 == my && $1 > mx {mx=$1;my=$2}
END{print mx " " my}'
答案 1 :(得分:1)
awk 'NR == 1 {my=$2;max_found=0}
!max_found && $2 > my {my=$2}
!max_found && $2 < my {mx=$1;my=$2;max_found=1}
max_found && $2 < my {mx=$1;my=$2}
max_found && $2 > my {exit}
END{print mx " " my}'
答案 2 :(得分:1)
这可能对您有用:
sort -k2,2n file | awk 'NR<2{max=$1} FNR<NR && $2>=max{print;exit}' file -
或者这个:
awk 'NR<2{max=$1}$2<max{next}min==0{line=$0;min=$2}$2<min{line=$0;min=$2}END{print line}' file