#navi(../)
* sortコマンドで自然数のソート方法 [#m5336f48]
sortコマンドで数値の桁があっていないデータをソートすると文字コード順でソートされてしまいます。~
本資料では、数値としてソートする方法を以下に記します。
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#jbc36196]
-[[lsコマンド・自然数でソート>逆引きUNIXコマンド/lsコマンド・自然数でソート]]
* sortコマンドを使用して自然数(数値として)でソートする方法 [#f27c2551]
自然数(数値)としてソートするには-nオプションを使用すれば実現できます。
sort -n
以下に実際に実行した例を記します。
** 使用した数値が格納されているファイル [#w2b664d5]
#ref(num.txt)
以下の内容を持つファイルを使用しました。
sakura@hpmini:~$ cat num.txt
3
4
14
20
20
11
0
14
1
18
1
17
3
11
4
11
0
4
12
17
** -n オプションを使用せず実行した時の出力 [#rc5774d6]
以下の出力をみるとわかるように、自然数(数値)でソートされておらず、文字コード順にソートされているのが確認できます。
sakura@hpmini:~$ sort num.txt
0
0
1
1
11
11
11
12
14
14
17
17
18
20
20
3
3
4
4
4
** -n オプションを使用して実行した時の出力 [#f866661c]
sortコマンドに''-n''を利用することにより自然数(数値)でソートされているのが確認できます。
sakura@hpmini:~$ sort -n num.txt
0
0
1
1
3
3
4
4
4
11
11
11
12
14
14
17
17
18
20
20
** 逆順にしたい場合は-rを追加する [#yac51fd8]
逆順ソートである''-r''オプションを追加すれば自然数(数値)で逆順にソートされているのが確認できます。
sakura@hpmini:~$ sort -nr num.txt
20
20
18
17
17
14
14
12
11
11
11
4
4
4
3
3
1
1
0
0
以上、sortコマンドを使用して自然数(数値)によるソート方法でした。
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)