dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

sort コマンドでの複数キーによるソート

2021-12-08 20:49:47 | linux
sort コマンドで複数のキーによるソート方法のメモ。

sort コマンドでは、カラム毎に文字列/数値、昇順/降順を組み合わせてソートすることができます。
以下は sort -k 2n -k 3nr -k 1 の実行例ですが、次の条件でソートしています。
 -k 2n: 第2カラムを数値の昇順
 -k 3nr: 第3カラムを数値の降順
 -k 1: 第1カラムを文字列の昇順
$ cat test.txt
abc1	1	100
abc2	1	50
abc3	1	100
abc4	1	50
def1	2	50
def2	2	25
def3	2	50
def4	2	25
ghi1	5	20
ghi2	5	10
ghi3	5	20
ghi4	5	10
jkl1	10	10
jkl2	10	5
jkl3	10	10
jkl4	10	5

$ cat test2.txt | sort -k 2n -k 3nr -k 1
abc1	1	100
abc3	1	100
abc2	1	50
abc4	1	50
def1	2	50
def3	2	50
def2	2	25
def4	2	25
ghi1	5	20
ghi3	5	20
ghi2	5	10
ghi4	5	10
jkl1	10	10
jkl3	10	10
jkl2	10	5
jkl4	10	5