web-dev-qa-db-ja.com

BASHの複数列ファイルの逆ソート順

私は次のファイルを持っています:

1 2 3
1 4 5
1 6 7
2 3 5
5 2 1

そして、2番目の列のファイルを、最大の数(この場合は6)から最小の順にソートする必要があります。私が試した

sort +1 -2 file.dat

しかし、それは私に逆の順序を与えます。

結果は次のようになります。

1 6 7
1 4 5
2 3 5
5 2 1
1 2 3
29
sort -nrk 2,2

トリックを行います。

nは数値ソート、rは逆順、k 2,2は2番目の列です。

49
Danstahr

-rを試しましたか? manページ から:

-r、-reverse

          reverse the result of comparisons
11
Brian Agnew

前述のように、ほとんどのバージョンのsortには-rオプションがtacを試行しない場合:

$ sort -nk 2,2 file.dat | tac 
1 6 7
1 4 5
2 3 5
5 2 1
1 2 3

$ sort -nrk 2,2 file.dat 
1 6 7
1 4 5
2 3 5
5 2 1
1 2 3

tac-ファイルを逆に連結して印刷する

3
Chris Seymour