sort コマンドは、テキストファイルの内容を行ごとに並び替えるためのコマンドです。
実務では、ログやCSVファイルをソートして重複や順序を整理する際に利用されます。
構文(Syntax)
sort [オプション] [FILE...]
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | 行を辞書順(ASCII順)でソート | sort data.txt |
-r | 逆順にソート | sort -r data.txt |
-n | 数値としてソート | sort -n numbers.txt |
-k N[,M] | 指定したフィールドでソート | sort -k 2 data.txt |
-t CHAR | フィールドの区切り文字を指定 | sort -t, -k 2 data.csv |
-u | 重複行を削除(ユニーク化) | sort -u data.txt |
-f | 大文字小文字を区別せずにソート | sort -f names.txt |
-o FILE | 結果を指定ファイルに出力 | sort -o sorted.txt data.txt |
-h | 人間が読みやすい形式(1K, 2M など)を数値として扱う | sort -h sizes.txt |
--parallel=N | 並列処理スレッド数を指定 | sort --parallel=4 bigfile.txt |
実行例
行を辞書順でソート
sort names.txt
出力例:
Alice
Bob
Charlie
数値としてソート
sort -n numbers.txt
入力例:
10
2
33
出力例:
2
10
33
逆順でソート
sort -r names.txt
CSVの2列目でソート
sort -t, -k2 data.csv
入力例:
Alice,30
Bob,25
Charlie,28
出力例:
Bob,25
Charlie,28
Alice,30
重複行を削除してソート
sort -u items.txt
ソート結果を別ファイルに保存
sort -o sorted.txt data.txt
エラー例(存在しないファイルを指定)
sort missing.txt
出力例:
sort: cannot read: missing.txt: No such file or directory
関連コマンド
uniq: 重複行を削除(ただし事前にsortが必要なことが多い)cut: フィールド抽出awk: 高度なフィルタリング・加工tr: 文字変換
備考
- デフォルトでは辞書順(ASCII順)でソートされるため、日本語環境では
LC_ALL=CやLC_ALL=ja_JP.UTF-8で挙動が変わることがあります。 - 大規模ファイルをソートする場合、一時ファイルを
/tmpに作成するためディスク容量に注意が必要です。 - 並列オプション(
--parallel)を使うと大規模データの処理が高速化します。
参考
- manページ: man7.org sort(1)
- GNU Coreutils: https://www.gnu.org/software/coreutils/

コメント