スコアが最も高い行のリスト

スコアが最も高い行のリスト

points.txt次のデータテーブルを含むファイルがあります。

Jim:4
Tim:8
Lin:6
Tom:1
Esko:2
Jaska:5
Erkki:7 

これで、次のリストを数値順(最も高いものから)にすることはできますか?または、最も高いスコアを持つ3つの名前をどのようにリストできますか?以下を試しましたが、うまくいかないようです。

sort -n -k 1,1 points.txt
sort -n points.txt
sort -n ^: points.txt

ベストアンサー1

TOP 3をお探しの場合

sort -k2,2rn -t: points.txt  | head -n 3 | cut -f1 -d:

-kソートフィールドを指定し、次の部分は次のとおりです。

2,2- フィールドで始まり終わるソートキー2

n - 数値ソート

r- 逆順ソート

-tこの場合、フィールド区切り文字を指定するために使用されます。:

おすすめ記事