sortコマンドとは
sortコマンドは、
UNIX系オペレーティングシステムに標準で搭載されている、テキスト処理のための強力なコマンドラインツールです。主に、テキストファイルの各行を指定した規則に従って
ソート(並べ替え)するために用いられます。このコマンドを使うことで、大量のテキストデータを効率的に整理し、特定の情報を探しやすくすることができます。
基本的な使い方
sortコマンドの最も基本的な使い方は、引数として与えられたファイルの内容を、デフォルトでは行の先頭から文字コード順に
ソートして標準出力に表示することです。
bash
sort file.txt
この例では、`file.txt`というファイルの内容を行ごとに
ソートし、その結果を画面に表示します。
様々なソートオプション
sortコマンドには、
ソートの動作を細かく制御するための様々なオプションが用意されています。以下に代表的なオプションとその使用例を示します。
数値ソート (-n オプション)
テキストファイルに数値データが含まれている場合、`-n`オプションを使用することで、数値を正しく比較して
ソートすることができます。このオプションがない場合、数値は文字列として扱われ、期待通りの結果にならないことがあります。
bash
sort -n numbers.txt
`numbers.txt`というファイルに数値データが含まれている場合、上記のコマンドで数値の小さい順に
ソートされます。
カラム指定ソート (-k オプション)
テキストデータが複数のカラム(列)で構成されている場合、特定のカラムを基準にして
ソートすることができます。`-k`オプションに続けてカラム番号を指定することで、そのカラムを
ソートのキーとして使用できます。
bash
sort -k 2 data.txt
この例では、`data.txt`ファイルの2番目のカラムをキーとして
ソートします。
逆順ソート (-r オプション)
ソート結果を降順(逆順)で表示したい場合は、`-r`オプションを使用します。例えば、数値データを大きい順に
ソートする場合などに便利です。
bash
sort -nr data.txt
この例では、`data.txt`ファイルの各行を、数値として解釈した上で大きい順に
ソートします。
その他のオプション
その他にも、空白以外の文字を区切り文字として指定する`-t`オプション、重複行を削除する`-u`オプションなど、様々なオプションがあります。これらのオプションを組み合わせることで、より複雑な
ソート処理が可能になります。
具体的な使用例
1.
ファイルサイズ順にソート: カレント
ディレクトリにあるファイルをファイルサイズ順に
ソートし、一覧表示する場合。
bash
ls -l | sort -n -k 5
`ls -l`コマンドでファイルのリストを表示し、その結果を`sort`コマンドにパイプで渡しています。`-n`オプションで数値
ソートを指定し、`-k 5`で5番目のカラム(ファイルサイズ)をキーとして
ソートしています。
2.
名簿をアルファベット順にソート: 名簿データが格納されたファイルを行単位でアルファベット順に
ソートする場合。
bash
sort namelist.txt
`namelist.txt`ファイルを、デフォルト設定でアルファベット順に
ソートして表示します。
3.
複数のキーでソート: 複数のカラムをキーとして
ソートすることも可能です。例えば、最初に2番目のカラムで
ソートし、次に3番目のカラムで
ソートする場合。
bash
sort -k 2 -k 3 data.txt
この場合、2番目のカラムが同じ値の場合は、3番目のカラムで
ソートされます。
注意点
古いバージョンの`sort`コマンドでは、`+`記号を用いたカラム指定方法が利用されていましたが、現在では`-k`オプションが推奨されています。
まとめ
sortコマンドは、
UNIX環境でテキストデータを扱う上で不可欠なツールの一つです。多様なオプションを使いこなすことで、複雑なデータ整理も効率的に行うことができます。日常的なデータ処理から、ログ分析まで、幅広い場面で活用できるでしょう。
外部リンク
Manpage of SORT JM Project
sort(1) man page(SunOS リファレンスマニュアル)
*
sort(1) man page(HP-UX リファレンス)