Linuxコマンド逆引き大全
コマンド集(機能別) | コマンド集(アルファベット順) | コマンド逆引き大全 | シェル・スクリプト・リファンレス

 テキスト・ファイルの行を並び替える
$ sort target_file

 行を降順に並べ替えるには「sort」コマンドを用いる。並び替えの際の基準(キー)となる文字は,行頭文字が最優先され,それが同じ場合は2文字目以降が順に優先される。また,通常は結果が標準出力に出されるため,ファイルに保存するにはリダイレクトで書き込むようにするか,「-o」オプションを用いる。


$ sort target_file > result
$ sort -o result target_file

 また,昇順に並び替える場合は「-r」オプションを用いる。


$ sort -r target_file


 応用:行頭を数値として扱って,行を並び替える
$ sort -n target_file

 行頭に“-”や“+”が現れた場合は,数値として扱って並び替える。


 応用:大文字,小文字を区別せず並び替える
$ sort -f target_file

 応用:CSVファイルの3列目をキーとして並び替える
$ sort -t , -k 3 target_file.csv

 CSV(Comma Separated Value)ファイルはそれぞれの列をカンマで区切っている。その区切り(セパレータ)を「-t」オプションで指定できる。また,「-k」オプションにより並び替えの対象となる列を指定できる。


 応用:3つのファイルを並び替えながら1つのファイルにまとめる
$ sort file1 > file1_buf
$ sort file2 > file2_buf
$ sort file3 > file3_buf
$ sort -mu file[1-3]_buf > result

 複数のファイルを1つにまとめながら並べ替えるには「-m」オプションを用いる。ただし,それぞれのファイルがあらかじめ並び替えてある必要がある。また,「-u」オプションを指定すれば,重複した行が1行だけしか出力されない。