Archive for 9月, 2012

sortコマンドについて

水曜日, 9月 26th, 2012

ランダムにデータが入ったテキストとか標準出力は綺麗に並べたいですよね。

sortコマンドを使いましょう
cat sample
ccc
zzz
sss
bbb
eee
hhh
ppp
ggg
aaa

sort sample
aaa
bbb
ccc
eee
ggg
hhh
ppp
sss
zzz

フィールドが複数ある場合はどうするのっと
cat sample2
ccc 105
zzz 91
sss 73
bbb 124
eee 77
hhh 152
ppp 147
ggg 92
aaa 111

-k でフィールドの番号を渡しましょう。
sort -k 2 sample2
ccc 105
aaa 111
bbb 124
ppp 147
hhh 152
sss 73
eee 77
zzz 91
ggg 92

あれ、numericなソートを期待してたよ?
はい、-nオプションも付けましょう

sort -n -k 2 sample2
sss 73
eee 77
zzz 91
ggg 92
ccc 105
aaa 111
bbb 124
ppp 147
hhh 152

降順に並べたいなら-r

デリミタを指定してフィールド番号指定したいよ?
-tを使いましょう。manをみるとセパレータの指定と書かれているようです。
cat sample3
ccc:105
zzz:91
sss:73
bbb:124
eee:77
hhh:152
ppp:147
ggg:92
aaa:111

sort -t: -k2 -nr sample3
hhh:152
ppp:147
bbb:124
aaa:111
ccc:105
ggg:92
zzz:91
eee:77
sss:73