【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システムの基礎とよく使うコマンドなどについて入門者向けに解説します。

コメント