このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】並び替えて表示する:sortコマンド

sort コマンドの概要

 「sort」 コマンドは、指定したファイルや標準入力からのデータを並べ替えて表示するためのLinuxコマンドです。デフォルトでは、テキストの各行を辞書順にソートしますが、オプションを使用することで数値順、逆順、特定のフィールドに基づくソートなど、さまざまなソート方法を指定できます。データの整理や解析において非常に有用なツールです。

【構文】
sort [オプション] [ファイル名...]

  • [オプション]: ソート方法や表示方法を指定するためのオプション。
  • [ファイル…]: ソート対象のファイル。省略すると標準入力から読み取ります。

主なオプションと説明

以下の表に、「sort」コマンドの主なオプションとその説明をまとめます。

オプション説明
-f大文字小文字を区別せずにソートします。
-n数値順にソートします。
-r逆順にソートします。
-k指定したフィールドに基づいてソートします。例:-k 2 は2番目のフィールドをキーとしてソート。
-tフィールドの区切り文字を指定します。デフォルトは空白。例:-t ',' でカンマを区切り文字として使用。
-u重複行を排除します。
主なオプションと説明

コマンドの使用例と解説

以下に、「sort」コマンドの具体的な使用例とその出力例を示します。

1.サンプルファイルの作成:example.txt

まず、以下の内容を持つサンプルファイル「example.txt」を作成します。

・「nano example.txt」コマンドを実行します。

nanoエディタを起動して、「example.txt」ファイルを作成します。

user01@ubuntu-vm:~$ nano example.txt

以下の内容を入力します。

banana
apple
Orange
grape
apple
Banana

 入力したら、「Ctrl + S」キーを入力して保存、「Ctrl + X」キーでnanoエディタを終了させます。

2.デフォルトの使用方法

・「sort example.txt」コマンドを実行します。

デフォルトでは辞書順にソートされます。大文字小文字は区別されます。

user01@ubuntu-vm:~$ sort example.txt
Banana
Orange
apple
apple
banana
grape

3.大文字小文字を区別せずにソート

・「sort -f example.txt」コマンドを実行します。

大文字小文字を区別せずにソートします。

user01@ubuntu-vm:~$ sort -f example.txt
apple
apple
Banana
banana
grape
Orange

4.逆順にソート

・「sort -r example.txt」コマンドを実行します。

逆順にソートします。

user01@ubuntu-vm:~$ sort -r example.txt
grape
banana
apple
apple
Orange
Banana

5.重複行を排除

・「sort -u example.txt」コマンドを実行します。

重複行を排除してソートします。

user01@ubuntu-vm:~$ sort -u example.txt
Banana
Orange
apple
banana
grape

6.数値順にソート

サンプルファイルの作成:numbers.txt

数値順にソートを行うためのサンプルファイル 「numbers.txt」を作成します。

・「nano numbers.txt」コマンドを実行します。

nanoエディタを起動して、「numbers.txt」ファイルを作成します。

user01@ubuntu-vm:~$ nano numbers.txt

以下の内容を入力します。

10
2
30
25
1
3

 入力したら、「Ctrl + S」キーを入力して保存、「Ctrl + X」キーでnanoエディタを終了させます。

・「sort -n numbers.txt」コマンドを実行します。

数値順にソートします。

user01@ubuntu-vm:~$ sort -n numbers.txt
1
2
3
10
25
30

7.特定のフィールドに基づいてソート

サンプルファイルの作成:fields.txt

特定のフィールドに基づいてソートを行うためのサンプルファイル 「fiels.txt」を作成します。

・「nano fields.txt」コマンドを実行します。

nanoエディタを起動して、「fields.txt」ファイルを作成します。

user01@ubuntu-vm:~$ nano fields.txt

以下の内容を入力します。

1,John,Doe
2,Jane,Smith
3,Bob,Johnson
4,Alice,Brown

 入力したら、「Ctrl + S」キーを入力して保存、「Ctrl + X」キーでnanoエディタを終了させます。

・「sort -t ',' -k 2 fields.txt」コマンドを実行します。

カンマ区切りの2番目のフィールド(名前)をキーとしてソートします。

user01@ubuntu-vm:~$ sort -t ',' -k 2 fields.txt
4,Alice,Brown
3,Bob,Johnson
2,Jane,Smith
1,John,Doe

8.演習で作成したファイルの削除

演習で使用したファイルを削除します。

・「rm example.txt numbers.txt fields.txt」コマンドを実行し、「ls」コマンドで削除されたかどうかを確認します。

user01@ubuntu-vm:~$ rm example.txt numbers.txt fields.txt
user01@ubuntu-vm:~$ ls
snap          テンプレート  ドキュメント  ピクチャ      公開
ダウンロード  デスクトップ  ビデオ        ミュージック

まとめ

 これらの演習を通じて、「sort」コマンドを使うことで、データを様々な方法で並べ替える方法が理解できたかと思います。「sort」コマンドは、テキストデータの整理や解析において非常に強力なツールとなります。