【sort】Linuxでファイルや出力を並び替えコマンド

Linuxで、ファイルやコマンドの標準出力を並び替えるコマンド「sort」について紹介します。

ファイルの内容を並び替える

$ sort [オプション] [ファイル]

sortコマンドは、ファイルなどの内容を行単位でソートした結果を出力するコマンドです。

デフォルトでは、行頭の文字を基準としてソートします。行頭の文字が同じ行がある場合、2番目、3番目の文字を順に比較します。

デフォルトでは、数値は昇順(1,2,3...)で、文字は辞書の並び順に並び替えされます。

例えば以下のようなファイルがあるとします。

sample.txt

1 John
3 Mike
5 Paul
4 Betty
2 Sara

これをsortコマンドで並び替えると以下のような結果となります。

$ sort sample.txt
1 John
2 Sara
3 Mike
4 Betty
5 Paul

出力結果を保存する

sortコマンドを実行しただけでは、ファイル内容は変更されません。そのため、ソートした内容を保存したい場合は、新しいファイルに保存する必要があります。

$ sort sample.txt > sample_sorted.txt

このコマンドを実行すると、sample_sorted.txtにソートした内容が保存されます。

パイプを使って標準出力を並び替える

また、sortコマンドはパイプ「|」を使って、ほかのコマンドの標準出力を並び替えることにも使われます。

以下はプロセスを表示するpsコマンドと組み合わせる例です。

$ ps aux | sort

このコマンドを実行すると、プロセスを実行しているUSER名でソートできます。