我需要获取具有最高值的行号

我需要获取具有最高值的行号

我有一个txt文件如下

 1  8.92
 2  9.99
 3  9.57
 4  9.63
 5  9.57
 6  9.51
 7  7.84
 8  7.95
 9  9.44
10  9.58
11  9.94
12  10.20
13  9.35

我需要最高值的行号。我怎样才能得到它?例如该数据的答案将是

12 10.20

答案1

为了避免排序,你可以这样做:

awk 'NR == 1 || $2 > max {number = $1; max = $2}
     END {if (NR) print number, max}' < file

或者如果输入仅包含一列并且您想知道具有最大值的行号:

awk 'NR == 1 || $1 > max {number = NR; max = $1}
     END {if (NR) print number, max}' < file

答案2

复制粘贴您的示例后,我这样做了:

sort -k2 -nr filename.txt | head -1

答案3

我用的是sort -rn -k2 test,其中test包含示例数据的文件的名称在哪里。

12 10.20
7 7.84
8 7.95
1 8.92
13 9.35
9 9.44
6 9.51
3 9.57
5 9.57
10 9.58
4 9.63
11 9.94
2 9.99

您可以通过以下方式获取行号:

sort -rn -k2 test | awk '{print $2}' | grep $(head -1) -n test

输出:

12:12 10.20

相关内容