最も高い値を持つ行番号を取得する必要があります。

最も高い値を持つ行番号を取得する必要があります。

次の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

または、入力に1つの列しか含まれておらず、最大値を持つ行番号を知りたい場合:

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 testtestここでは、サンプルデータを含むファイル名です。

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

関連情報