sortコマンドで並び替え対象のカラムを指定する

sortコマンドで並び替え対象のカラムを指定する

Linux(FreeBSD)sortコマンドで並び替え対象のカラムを指定する

アクセスログの解析などで、数値の大小や時間などを軸にデータを見る場合に並び替えをよく使います。並び替えの昇順と降順については sort コマンドの -r オプションで対応することが可能ですが、項目が複数あった場合の指定方法は意外に覚えてなかったりします。そこで、備忘録として残しておきます。今回は、下記の 5 行のデータで試してみます。

$ cat saratoga.txt

A 5
B 1
C 3
D 4
E 2


# 降順に並べる
$ cat saratoga.txt | sort -r

E 2
D 4
C 3
B 1
A 5


# 2番目のカラムを並び替え対象にする
$ cat saratoga.txt | sort +1

B 1
E 2
C 3
D 4
A 5

一番左のカラムは +0、2 番目のカラムは +1 と指定します。ちなみに、数値の項目を並び替える場合、2 と 11 を比べると 11 の 1 の部分が比較され小さいとみなされます。そこで、数値項目を比較する場合は -n オプションを使います。

$ cat saratoga.txt

A 1
B 11
C 2
D 12
E 21


$ cat saratoga.txt | sort +1

A 1
B 11
D 12
C 2
E 21


$ cat saratoga.txt | sort -n +1

A 1
C 2
B 11
D 12
E 21

最終更新日:

関連記事

人気記事

新着情報