sort -nオプションの使い方を完全ガイド!初心者でもわかるLinux数値並べ替えの基本
生徒
「Linuxで数字が並んだデータを小さい順に並べたいんですが、どうすればいいですか?」
先生
「それなら sort コマンドの -n オプションを使うといいですよ。」
生徒
「文字じゃなくて、ちゃんと数字として並び替えてくれるんですか?」
先生
「はい。数字として判断してくれるので、初心者の方でも安心して使えます。基本から説明しますね。」
1. sortコマンドとは?
sortコマンドは、Linuxでテキストファイルやデータを並び替えるための基本コマンドです。ログファイル、数値データ、名前の一覧などを「順番に整えたい」ときによく使われます。
Windowsでいうと、Excelで「並び替え」ボタンを押す感覚に近いです。ただしLinuxでは、マウスではなくキーボードで命令を入力します。
2. 数字を並べ替えるときの落とし穴
実は sort コマンドは、そのまま使うと文字として並び替えを行います。数字も文字として扱われるため、初心者が混乱しやすいポイントです。
cat numbers.txt
1
10
2
20
sort numbers.txt
1
10
2
20
「1 → 10 → 2」という並びは、数字として見るとおかしいですよね。これは「辞書順」で並んでいるためです。
3. sort -nオプションとは?
-n オプションは、「数値(すうち)として並び替える」という意味を持っています。これを付けるだけで、数字を正しく判断してくれます。
sort -n numbers.txt
1
2
10
20
これで、人間が考える自然な順番になりました。-n は「number(数字)」の頭文字と覚えると理解しやすいです。
4. sort -nの基本的な使い方
基本形はとてもシンプルです。
sort -n ファイル名
これだけで、ファイルの中身を数値として昇順(小さい順)に並べ替えて表示します。ファイル自体は書き換えられないので安心してください。
5. 大きい順に並べたい場合(-rとの組み合わせ)
数字を大きい順に並べたいときは、-r オプションを一緒に使います。-r は「逆順」という意味です。
sort -n -r numbers.txt
20
10
2
1
オプションは順番を入れ替えても問題ありません。sort -rn と書いても同じ結果になります。
6. スペース区切りの数値データを並べ替える
実務では「名前 数字」のようなデータもよく見かけます。
cat score.txt
A 80
B 100
C 60
この場合、2列目を数値として並び替えたいですよね。そのときは -k オプションを使います。
sort -k2 -n score.txt
C 60
A 80
B 100
7. 他のsortオプションとの違い
-n を付けない場合は文字列比較、-n を付けると数値比較になります。これが最大の違いです。
似たオプションとして -h(人が読む数値)がありますが、初心者のうちは -n だけ覚えておけば十分です。
8. sort -nがよく使われる場面
sort -n は、ログの行番号、テストの点数、ファイルサイズ一覧など、数字が意味を持つデータで頻繁に使われます。
「数字を正しい順番で整理したい」と思ったら、まず sort -n を思い出してください。