【Linuxコマンド】sortでファイル内の行を並べ替え(ソート)

Linuxコマンド「sort」でファイル内の行を並べ替え(ソート)する方法についてまとめました。

スポンサーリンク

ファイル内の行を並べ替え(ソート)

sortは、ファイル内の行を並べ替え(ソート)できます。

sort [オプション] ファイルパス
オプション 説明
-c ソート済みか否かをチェック(真なら0、偽なら1を返す)
-t 文字 列の区切り文字を指定(デフォルトはスペース)(t, だとコンマ区切り)
-k m[, n] m列目から[n列目]の値をキーにしてソート
-r ソート順序を逆にする
-n 空白を無視
-b 先頭のスペースとタブを無視
-d 英数字、空白、タブ以外を無視
-f 大文字小文字を区別しない
-u 同一内容の行を削除

※-k 5,6 だと5列目で比較し、5列目が同じ場合は6列目で比較
※-k 5だと、5列目で比較し、同じ場合は6列目で比較・・・という風に最後の列まで順に比較

スポンサーリンク

実行例

コマンドの実行例です。

$ sort -n k 5 data.txt

4   Korea   Lee Fei   21
2   Japan   Kei Sato  22
5   British Mey Craus 24
1   America Tom Brown 25
3   China   Mao Ryu   28

上記の例は、data.txt内の行を5列目のデータを数値ソートで並べ替えた結果です。

「sort -nk5 data.txt」とコマンドを短縮することもできます。

※ -nを忘れると、連続した空白も列にカウントされ、2つ目の連続した空白がソート対象となります

【Linuxコマンド入門】主なコマンドとサンプル集
Linuxコマンドの主な使い方とサンプル集について入門者向けにまとめました。
UNIX
スポンサーリンク

コメント