sortコマンドの使い方を完全ガイド!初心者でもわかるLinuxでテキストやデータを並べ替える基本
生徒
「Linuxでファイルの中身を順番に並べ替えたいときって、どうすればいいんですか?」
先生
「そんなときはsortコマンドを使います。文字や数字をルールに従って並べ替えられますよ。」
生徒
「黒い画面で並べ替えって、なんだか難しそうです…」
先生
「大丈夫です。紙に書いたメモを名前順に並べる感覚で使えます。一緒にゆっくり見ていきましょう。」
1. sortコマンドとは?
sortコマンドは、Linuxでファイルやテキストの行を並べ替えるための基本コマンドです。ログファイル、名簿、設定ファイル、CSVデータなど、行がたくさん並んだテキストを整理したいときに使われます。
Windowsでいうと、表計算ソフトで「昇順」「降順」を選ぶ操作に近いです。ただし、sortはターミナル(文字だけで操作する画面)で命令を入力します。その代わり、大量のデータでも一瞬で処理できるのが特徴です。
2. 並べ替えの前に知っておきたい「行」と「文字」
Linuxのテキストファイルは、「行(ぎょう)」の集まりでできています。Enterキーで区切られた1行ずつを、上から下へ順番に並べています。
sortは、この1行ごとに並べ替えを行います。文字は基本的に、アルファベット順(A→Z)や数字の小さい順で比較されます。
たとえば、「apple」「banana」「cherry」という3行があれば、辞書順に並びます。これは国語辞典で言葉を探す感覚と同じです。
3. sortコマンドの基本的な使い方
まずは一番シンプルな使い方から見てみましょう。次のようなファイルがあるとします。
cat fruits.txt
banana
apple
cherry
このファイルを並べ替えるには、次のように入力します。
sort fruits.txt
apple
banana
cherry
何もオプションをつけない場合、文字の昇順(小さい→大きい)で並び替えられます。元のファイルは変更されず、結果だけが画面に表示される点も安心ポイントです。
4. 逆順に並べたいとき(降順)
並び順を逆にしたいときは、-rオプションを使います。rは「reverse(逆)」の意味です。
sort -r fruits.txt
cherry
banana
apple
これで、アルファベットの後ろから前へ並びます。成績表を高い順に見たいときなど、降順はよく使われます。
5. 数字として正しく並べ替える方法
数字が書かれたファイルをそのままsortすると、文字として比較されます。そのため「10」が「2」より前に来ることがあります。
cat numbers.txt
1
10
2
sort numbers.txt
1
10
2
数字として正しく並べ替えたい場合は、-nオプションを使います。
sort -n numbers.txt
1
2
10
-nは「numeric(数値)」の略で、初心者でも覚えやすい重要オプションです。
6. 重複している行をまとめたいとき
同じ行が何度も出てくるデータを整理したい場合があります。そんなときは、-uオプションを使います。
cat colors.txt
red
blue
red
green
sort -u colors.txt
blue
green
red
-uは「unique(重複しない)」という意味です。名簿や一覧データの整理でとても便利です。
7. 特定の列を基準に並べ替える
空白で区切られたデータでは、「何列目を基準に並べるか」を指定できます。これには-kオプションを使います。
cat score.txt
Alice 80
Bob 95
Carol 70
2列目(点数)で数字順に並べ替えてみます。
sort -k 2 -n score.txt
Carol 70
Alice 80
Bob 95
表の列を意識できるようになると、Linuxでのデータ処理が一気に楽になります。
8. 他のコマンドと組み合わせて使う
sortは単体でも使えますが、他のコマンドと組み合わせると真価を発揮します。たとえば、lsの結果を並べ替えることもできます。
ls
b.txt
a.txt
c.txt
ls | sort
a.txt
b.txt
c.txt
このように、パイプ(|)を使うことで、コマンド同士をつなげて処理できます。これは水道管で水を流すイメージに近いです。