重複する可能性がありますが、タブ区切りのファイルがあり、2番目の列(浮動小数点値)に基づいてファイルを並べ替える必要があります。
sort -s -k2,2gr -t$'\t'
コードは、タブで区切られたファイルの2番目の列に基づいて逆順にのみソートすることを示しています。しかし、私は間違った答えを得ました。
答え1
検査の結果、私の使用法の提案は-n
正確でした。
$ for i in {1..10}; do printf "%s\t%s\t%s\n" $RANDOM $(python3 -c "print($RANDOM / $RANDOM)") $RANDOM; done | sort -n -t' ' -k2
29712 0.03716599507061539 950
2107 0.08032908116102791 1738
27575 0.37469985135495676 9831
16029 0.6201534733441034 18426
10659 0.7227198549410698 19929
1175 0.8913083459006143 24232
27187 1.1602447494625434 7016
6047 1.6342058354442255 17419
25561 2.026578073089701 4270
21636 14.603404255319148 17159
サンプルデータは次のようにうまく機能します-n
。
$ sort -n -t$'\t' -k2 test.txt -r | column -t -s$'\t'
Austin, Texas 50.2 68.3 84.2 70.6 33.65 85 0.9 62/58
Baton Rouge, La. 50.1 66.6 81.7 68.1 63.08 110 0.2 52/46
Atlanta, Ga. 42.7 61.6 80.0 62.8 50.20 115 2.1 69/65
Birmingham, Ala. 42.6 61.3 80.2 62.9 53.99 117 1.5 60
Asheville, N.C. 35.8 54.1 73.0 55.2 47.07 126 15.3 39
Albuquerque, N.M. 35.7 55.6 78.5 57.3 9.47 60 11.0 64
Baltimore, Md. 32.3 53.2 76.5 55.4 41.94 115 21.5 53
Atlantic City, N.J. 32.1 50.6 75.3 55.1 40.59 113 16.2 60/54
Boise, Idaho 30.2 50.6 74.7 52.8 12.19 89 20.6 64
Bridgeport, Conn. 29.9 48.9 74.0 54.7 44.15 119 26.2 55/49
Boston, Mass. 29.3 48.3 73.9 54.1 42.53 127 42.8 52/66
Billings, Mont. 24.0 46.1 72.0 48.1 14.77 96 56.9 69
Albany, N.Y. 22.2 46.6 71.1 49.3 38.60 136 64.4 57
Anchorage, Alaska 15.8 36.3 58.4 34.1 16.08 115 70.8 39/60
Bismarck, N.D. 10.2 43.3 70.4 45.2 16.84 96 44.3 64
1 つのフィールドにのみ並べ替え順序を指定すると、並べ替えられたフィールドに同点がある場合に問題が発生する可能性があります。