このページで解説している内容は、以下の 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
」コマンドは、テキストデータの整理や解析において非常に強力なツールとなります。