Linuxのsortコマンド完全解説
sortコマンドは、ファイルや標準入力から得たデータを並び替えるための非常に便利なツールです。
本記事では、sortコマンドの使い方や主なオプション、具体的な利用例を分かりやすく解説します。
sortコマンドの概要
sortコマンドは、行ごとに並んだデータを特定の条件に基づいて並べ替えるために使用されます。
並び替えは、アルファベット順、数値順、逆順など、さまざまな条件を指定可能です。
sort [オプション] ファイル名
- 入力: テキストファイルや標準入力。
- 出力: 並び替えられた結果を標準出力またはファイルに保存。
主なオプション一覧
| オプション | 説明 |
|---|---|
-r | 逆順で並べ替え(降順) |
-n | 数値として並び替え |
-k N | N番目のフィールドで並び替え |
-u | 重複行を排除して並び替え |
-f | 大文字と小文字を無視して並び替え |
-t [文字] | フィールドの区切り文字を指定(デフォルトは空白) |
--version | バージョン情報を表示 |
詳細解説と具体例
基本的な使い方
指定したファイルの内容を並び替えて表示します。
# 入力ファイル (example.txt)
apple
orange
banana
grape
# 並び替え
sort example.txt
# 出力結果
apple
banana
grape
orange
sortコマンドは、行単位でデータをアルファベット順(ASCII順)に並び替えます。
この結果では、appleからorangeまでの単語がアルファベットの順序通りに並んでいます。
オプションの使用例
-r: 逆順で並び替え
sort -r example.txt
# 出力結果
orange
grape
banana
apple
-rオプションは、デフォルトの昇順ではなく降順で並び替えます。
このため、orangeが最初、appleが最後に配置されます。
-n: 数値順で並び替え
数値を含むデータを並び替えるときに使用します。
# 入力ファイル (numbers.txt)
10
2
33
21
sort -n numbers.txt
# 出力結果
2
10
21
33
-nオプションは、データを数値として解釈して並び替えます。デフォルトでは、数字を文字列として処理するため、10は2より先に配置されますが、-nを使うと正しい数値順序が適用されます。
-k N: 指定したフィールドで並び替え
データが複数の列に分かれている場合、特定の列を基準に並べ替えます。
# 入力ファイル (data.txt)
John 30
Alice 25
Bob 28
sort -k 2 data.txt
# 出力結果
Alice 25
Bob 28
John 30
-kオプションで2を指定したため、2番目のフィールド(数字部分)を基準に並び替えています。
この結果、数値が小さい順に行が並びます。
-u: 重複行を排除
重複する行を削除して並べ替えます。
# 入力ファイル
apple
orange
apple
grape
sort -u example.txt
# 出力結果
apple
grape
orange
-uオプションを使用すると、重複行が排除されます。
この場合、appleが重複していましたが、1行にまとめられています。
-t [文字]: 区切り文字を指定
カンマやタブなどで区切られたデータに対応します。
# 入力ファイル (csv.txt)
Alice,25
Bob,30
John,20
sort -t ',' -k 2 csv.txt
# 出力結果
John,20
Alice,25
Bob,30
-tオプションでカンマ(,)を区切り文字に指定し、-k 2で2番目のフィールド(数値部分)を基準に並び替えています。
その結果、年齢が昇順で並びます。
利用シーンと注意点
利用シーン
- テキストデータの整列(例: ユーザーリスト、ログファイル)
- データ分析の準備段階での並び替え
- 大規模データの処理(例:
sortとuniqを組み合わせた処理)
注意点
- 並び替え対象が大きなデータの場合、処理に時間がかかることがあります。その場合は、
--parallelオプションで並列処理を検討してください。 -kオプションを使用する場合、正確にフィールド番号を指定しないと意図した結果が得られないことがあります。
まとめ
sortコマンドは、テキストデータを並び替えるための強力なツールです。
本記事で紹介した基本的な使い方やオプションを活用して、効率的なデータ操作を行いましょう。
