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
このように、パイプ(|)を使うことで、コマンド同士をつなげて処理できます。これは水道管で水を流すイメージに近いです。
まとめ
sortコマンドはLinuxにおけるデータ整理の基本スキル
本記事では、Linux初心者向けにsortコマンドの基本から応用までを丁寧に解説しました。 sortコマンドは、テキストファイルやコマンドの出力結果を並べ替えるための基本的なLinuxコマンドであり、ログ解析やデータ整理、システム管理など幅広い場面で活用されます。 特にLinux環境ではテキストベースの処理が中心となるため、sortコマンドの理解は必須スキルといえます。 昇順や降順といった基本的な並べ替えから、数値順や列指定などの応用までを理解することで、Linuxでの作業効率が大きく向上します。 初心者の方でも直感的に扱えるコマンドですが、実務でも通用する重要な機能を持っているため、しっかりと習得しておくことが大切です。
デフォルトの並べ替えは文字列の辞書順であることを理解する
sortコマンドはオプションを指定しない場合、文字列として辞書順に並べ替えを行います。 これはアルファベット順や文字コード順に従った並び替えであり、日常的なデータ整理において非常に便利です。 しかし、数値データを扱う場合には注意が必要であり、文字列として比較されるため意図しない順番になることがあります。 この違いを理解することが、sortコマンドを正しく使いこなす第一歩となります。 Linux初心者の方はまず基本の並べ替え動作を理解し、その上で用途に応じたオプションを使い分けるようにしましょう。
sort fruits.txt
apple
banana
cherry
デフォルトではこのように辞書順で並べ替えが行われます。
-rや-nオプションで実務に対応できる並べ替えが可能
sortコマンドには便利なオプションが多数用意されており、特に-rオプションと-nオプションは頻繁に使用されます。 -rオプションを使うことで降順に並べ替えることができ、ランキングや成績一覧などの表示に役立ちます。 -nオプションは数値として比較を行うため、数字データを正しく並べ替える際に必須です。 これらのオプションを組み合わせることで、より実務に近いデータ処理が可能になります。 Linuxでのログ解析やデータ整理では、これらのオプションを理解しているかどうかで作業効率に大きな差が出ます。
sort -r fruits.txt
cherry
banana
apple
sort -n numbers.txt
1
2
10
目的に応じてオプションを使い分けることが重要です。
-uや-kオプションでさらに高度なデータ処理ができる
sortコマンドは単純な並べ替えだけでなく、重複排除や特定列での並べ替えといった高度な処理にも対応しています。 -uオプションを使えば重複行を削除しながら並べ替えることができ、データの整理に非常に便利です。 また、-kオプションを使うことで特定の列を基準に並べ替えることができ、表形式のデータ処理において大きな力を発揮します。 CSVファイルやログファイルの分析においては、これらの機能が非常に重要になります。 Linux初心者の方も、基本操作に慣れてきたらぜひ活用してみてください。
sort -u colors.txt
blue
green
red
sort -k 2 -n score.txt
Carol 70
Alice 80
Bob 95
データの整理や分析において非常に有効なテクニックです。
パイプと組み合わせることでLinuxコマンドの真価を発揮する
sortコマンドは他のLinuxコマンドとパイプで組み合わせることで、より強力なデータ処理が可能になります。 lsやgrepなどのコマンドと組み合わせることで、必要な情報だけを抽出して並べ替えることができます。 Linuxではコマンド同士を連携させることで複雑な処理をシンプルに実現できるため、パイプの使い方は非常に重要です。 sortコマンドはその中心となる存在であり、テキスト処理の基礎として覚えておくべきコマンドです。 初心者の方も、単体のコマンドに慣れた後はパイプを活用した応用操作に挑戦してみましょう。
ls | sort
a.txt
b.txt
c.txt
コマンドをつなげることで柔軟なデータ処理が可能になります。
sortコマンドを習得することでLinux操作の幅が広がる
sortコマンドはLinuxにおける基本コマンドでありながら、非常に奥が深い機能を持っています。 本記事で紹介した基本操作やオプションを理解することで、日常的なデータ整理やログ解析の効率が大きく向上します。 また、他のコマンドと組み合わせることで、より高度な処理を簡単に実現できるようになります。 Linux初心者の方でも、実際にコマンドを入力して試すことで理解が深まり、自然とスキルが身についていきます。 sortコマンドを使いこなせるようになることは、Linux操作のレベルアップに直結しますので、ぜひ繰り返し練習してみてください。
生徒
「sortコマンドって、ただ並べ替えるだけじゃなくて色々なことができるんですね。」
先生
「そうです。基本はシンプルですが、オプションを使うことで幅広い用途に対応できます。」
生徒
「数値と文字で並び方が違うのは勉強になりました。」
先生
「その違いを理解することがとても重要です。実務でもよく使います。」
生徒
「パイプと組み合わせると便利なのも分かりました。」
先生
「Linuxはコマンド同士の連携が強みです。sortはその中心となるコマンドのひとつです。」
生徒
「これからはログファイルの整理にも使ってみたいです。」
先生
「ぜひ実際に使ってみてください。使うほど理解が深まりますよ。」