Diary

Diary

日々学んだことをアウトプットする場として初めてみました

linuxのコマンドでsortしてみる

linuxのコマンドでsortしてみる

主にsortコマンドの使い方となっています

設定

以下のような内容の記述されたファイルをソートしてみます(ちなみにファイルの内容のイメージは、左が乱数の下1桁で右がその出現回数です)

$ cat last_one 
0 978
1 1048
2 972
3 953
4 1007
5 980
6 1010
7 983
8 1081
9 988

ソートに使うkeyを選択する

まず第二項をキーとしてsortするには、keyを指定するオプション-k2をつけます

$ cat last_one | sort -k2
4 1007
6 1010
1 1048
8 1081
3 953
2 972
0 978
5 980
7 983
9 988

これだと、辞書型でのsortになってしまいます。

つまり、(左から)1桁目を比べてそれが同じなら2桁目を比べて、というsortの仕方です。

数字としての大きさでソート

普通の数字順で並び替えたければ、numberの-nオプションをつけます

$ cat last_one | sort -k2 -n
3 953
2 972
0 978
5 980
7 983
9 988
4 1007
6 1010
1 1048
8 1081

逆順でソート

逆順でソートするには、reverseの-rオプションをつけます

$ cat last_one | sort -k2 -n -r
8 1081
1 1048
6 1010
4 1007
9 988
7 983
5 980
0 978
2 972
3 953