Linuxで、ファイルやコマンドの標準出力を並び替えるコマンド「sort」について紹介します。
ファイルの内容を並び替える
1 |
$ sort [オプション] [ファイル] |
sortコマンドは、ファイルなどの内容を行単位でソートした結果を出力するコマンドです。
デフォルトでは、行頭の文字を基準としてソートします。行頭の文字が同じ行がある場合、2番目、3番目の文字を順に比較します。
デフォルトでは、数値は昇順(1,2,3...)で、文字は辞書の並び順に並び替えされます。
例えば以下のようなファイルがあるとします。
sample.txt
1 2 3 4 5 |
1 John 3 Mike 5 Paul 4 Betty 2 Sara |
これをsortコマンドで並び替えると以下のような結果となります。
1 2 3 4 5 6 |
$ sort sample.txt 1 John 2 Sara 3 Mike 4 Betty 5 Paul |
出力結果を保存する
sortコマンドを実行しただけでは、ファイル内容は変更されません。そのため、ソートした内容を保存したい場合は、新しいファイルに保存する必要があります。
1 |
$ sort sample.txt > sample_sorted.txt |
このコマンドを実行すると、sample_sorted.txtにソートした内容が保存されます。
パイプを使って標準出力を並び替える
また、sortコマンドはパイプ「|」を使って、ほかのコマンドの標準出力を並び替えることにも使われます。
以下はプロセスを表示するpsコマンドと組み合わせる例です。
1 |
$ ps aux | sort |
このコマンドを実行すると、プロセスを実行しているUSER名でソートできます。