sm2 : キー単位での値の集計
Usage : sm2 [+count] <k1> <k2> [<s1>
<s2>] <file>
sm2 [+count] [key=<key>] [val=<val>] <file>
Version : Tue Oct 20 13:16:57 JST 2015
Edition : 1
店別日別の各商品の売数
No 店 日付 A B C D E
$ keta data
0001 新橋店 20060201 91 59 20 76 54
0001 新橋店 20060202 46 39 8 5 21
0001 新橋店 20060203 82 0 23 84 10
0002 池袋店 20060201 30 50 71 36 30
0002 池袋店 20060202 78 13 44 28 51
0002 池袋店 20060203 58 71 20 10 6
0003 新宿店 20060201 82 79 16 21 80
0003 新宿店 20060202 50 2 33 15 62
0003 新宿店 20060203 52 91 44 9 0
0004 上野店 20060201 60 89 33 18 6
0004 上野店 20060202 95 60 35 93 76
0004 上野店 20060203 92 56 83 96 75
店別の売れ数の合計を出します。第1フィールドから第2フィールドをキー
として、第4フィールドから第8フィールドを集計します。
従来記法
$ sm2 1 2 4 8 data > data2
$ cat data2
0001 新橋店 219 98 51 165 85
0002 池袋店 166 134 135 74 87
0003 新宿店 184 172 93 45 142
0004 上野店 247 205 151 207 157
キーワード記法
$ sm2 key=1/2 val=4/8 data > data2
例2
"+count"オプションはキー毎の集計すると同時に、元データの各キー毎のレ
コードの行数をキーの直後に挿入出力します。
$ cat data
1111 3
1111 5
1111 2
2222 3
2222 10
3333 4
3333 8
3333 9
3333 6
キーが同一の行を出力します。
従来記法
$ sm2 +count 1 1 2 2 data > data2
$ cat data2
1111 3 10
2222 2 13
3333 4 27
キーワード記法
$ sm2 +count key=1 val=2 data > data2例3
sm2 は小数点がある場合、各キー、各フィールド毎に一番精度の高い数に揃
えて出力します。
$ cat data3 | keta --
a 1.4 2.55
a 2 4
b 1.33 2.1
b 5.222 3.12
従来記法
$ sm2 1 1 2 3 data3 | keta --
a 3.4 6.55
b 6.552 5.22
キーワード記法
$ sm2 key=1 val=2/3 data3例4
キーを 0 0 に指定すると、集計フィールドの総合計を出力します。
$ cat data4
a 1
b 2
c 3
従来記法
$ sm2 0 0 2 2 data4
6
キーワード記法
$ sm2 val=2 data4
指定したディレクトリに存在するファイルのサイズを合計するには
$ ls -l directory | tail -n +2 | sm2 0 0 5 5