
新Linux入門|sortコマンドを理解しよう!ファイル内容を並べ替える方法
Linuxでテキストファイルを扱っていると、「データを順番に並べ替えたい」と思うことはありませんか?
たとえば商品リストをアルファベット順にしたい、ログを数値で並べたい、特定の列で並び替えたい、そんなときに活躍するのが sortコマンド です。
sortコマンドは、ファイルの行を並べ替えて表示するための基本コマンドです。
単純な文字順だけでなく、数値順、列(フィールド)指定、降順など、柔軟な並べ替えが可能です。

📘 sortコマンドの概要
sortコマンドは、ファイルの中の各行を比較し、指定した条件に従って順番を並べ替えるコマンドです。
デフォルトでは「辞書順(アルファベット順)」で並べ替えますが、オプションを指定することで
数値順・逆順・特定の列単位での並べ替えも行えます。
📘 コマンド書式
sort [オプション] ファイル名📗 例
[suzuki@AlmaLinux ~]$ sort data.txtこのように実行すると、ファイル data.txt の内容が辞書順に並び替えられて表示されます。
⚙️ 主なオプションと説明
| オプション | 説明 |
|---|---|
| -r | 降順(逆順)にソートします。 |
| -n | 文字列ではなく数値としてソートします。 |
| -k KEY | 指定した列(フィールド)を基準にソートします(デフォルトは1列目)。 |
| -t CHAR | 列を区切るデリミタ(区切り文字)を指定します(デフォルトはタブ)。 |
| -u | 重複行を削除してソートします。 |
| -f | 大文字と小文字を区別せずにソートします。 |
| -b | 先頭の空白を無視してソートします。 |
💡 ポイント
- -n と -r の組み合わせ(-nr)で「数値の降順ソート」が可能。
- -t と -k を併用すると、CSVや区切り付きテキストの並べ替えに便利です。
- -u を使うと重複を自動で省けるため、リストの整理にも役立ちます。
🧪 使用例と出力解説
まず、以下のようなファイル data.txt を用意します。
[suzuki@AlmaLinux ~]$ cat data.txt
1:orange:オレンジ
11:grape:ぶどう
13:peach:もも
53:cherry:さくらんぼ
997:apple:りんご
21:melon:メロン
8:banana:バナナ① 辞書順にソート(デフォルト)
[suzuki@AlmaLinux ~]$ sort data.txt
11:grape:ぶどう
13:peach:もも
1:orange:オレンジ
21:melon:メロン
53:cherry:さくらんぼ
8:banana:バナナ
997:apple:りんご💬 デフォルトでは文字列として並び替えを行うため、1 → 2 → 5 → 8 → 9 のような辞書順になります。
数値ではなく、文字列の最初の桁で比較している点に注目です。
② 数値順にソート(-n)
[suzuki@AlmaLinux ~]$ sort -n data.txt
1:orange:オレンジ
8:banana:バナナ
11:grape:ぶどう
13:peach:もも
21:melon:メロン
53:cherry:さくらんぼ
997:apple:りんご💬 -n オプションを付けると、文字列ではなく数値として正しく並べ替えが行われます。
ファイル中の「番号」や「ID」を基準にしたいときに便利です。
③ 数値で降順にソート(-nr)
[suzuki@AlmaLinux ~]$ sort -nr data.txt
997:apple:りんご
53:cherry:さくらんぼ
21:melon:メロン
13:peach:もも
11:grape:ぶどう
8:banana:バナナ
1:orange:オレンジ💬 -r は降順(逆順)を意味します。-n と組み合わせることで、数値の大きい順に並べ替えます。
④ 特定の列(2列目)をキーにしてソート(-t, -k)
[suzuki@AlmaLinux ~]$ sort -t ':' -k2 data.txt
997:apple:りんご
8:banana:バナナ
53:cherry:さくらんぼ
11:grape:ぶどう
21:melon:メロン
1:orange:オレンジ
13:peach:もも💬 -t で区切り文字(ここでは : )を指定し、-k2 で2列目をソートキーにしています。
この例では英単語(果物名)順に並べ替えています。
🧩 sortコマンドの応用ポイント
| 操作目的 | 使用例 | 説明 |
|---|---|---|
| 数値の昇順 | sort -n data.txt | 数字が小さい順に並べる。 |
| 数値の降順 | sort -nr data.txt | 数字が大きい順に並べる。 |
| 特定列で並べ替え | sort -t ':' -k3 data.txt | 区切り文字を指定し、3列目を基準にソート |
| 重複削除 | sort -u data.txt | 重複行を削除してソート |
| 大文字小文字無視 | sort -f data.txt | "A" と "a" を同一視してソート |
💡 コツ
複雑なデータでも、-t(区切り文字)と-k(列指定)を組み合わせることで自在に並べ替え可能です。
✅ まとめ
- sortコマンド は、テキストファイルの行を並べ替えるための基本コマンド。
- 辞書順・数値順・特定列指定・重複除去 など、多彩なオプションで柔軟に使える。
- -t(区切り文字指定)と -k(列指定)を組み合わせれば、複雑なCSV形式にも対応可能。
- AlmaLinux 9.6 でも、ログ整理やデータ整形に欠かせない強力なツールです。
💬 まずは sort data.txt を試してみて、どのように順序が変わるか体験してみましょう。
慣れてきたら -n や -t ':' -k2 を使って、実践的な並べ替えにも挑戦してみてください!
