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