sortコマンドで並び替え対象のカラムを指定する
※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい
2008-07-27
アクセスログの解析などで、数値の大小や時間などを軸にデータを見る場合に並び替えをよく使います。並び替えの昇順と降順については 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
関連記事
上記の記事に関連する記事(最新の10件)です。


