sm4 : 小計行、中計行を挿入する。
Usage : sm4 [+<n>h] [-d<string>] <k1>
<k2> <d1> <d2> [<s1> <s2>]
<file>
sm4 [+<n>h] [-d<string>] key=<key>
[dummy=<dummy>] [val=<val>]
<file>
Version : Tue Oct 20 13:16:57 JST 2015
Edition : 1
各都市での調査データ
$ cat data
01 埼玉県 01 さいたま市 91 59 20 76 54
01 埼玉県 02 川越市 46 39 8 5 21
01 埼玉県 03 熊谷市 82 0 23 84 10
02 東京都 04 新宿区 30 50 71 36 30
02 東京都 05 中央区 78 13 44 28 51
02 東京都 06 港区 58 71 20 10 6
02 東京都 07 八王子市 82 79 16 21 80
02 東京都 08 立川市 50 2 33 15 62
03 千葉県 09 千葉市 52 91 44 9 0
03 千葉県 10 市川市 60 89 33 18 6
03 千葉県 11 柏市 95 60 35 93 76
04 神奈川県 12 横浜市 92 56 83 96 75
04 神奈川県 13 川崎市 30 12 32 44 19
04 神奈川県 14 厚木市 48 66 23 71 24
県別に小計を出します。
$ sm4 1 2 3 4 5 NF data > data2
$ cat data2
01 埼玉県 01 さいたま市 91 59 20 76 54
01 埼玉県 02 川越市 46 39 8 5 21
01 埼玉県 03 熊谷市 82 0 23 84 10
01 埼玉県 @@ @@@@@@@@@@ 219 98 51 165 85
02 東京都 04 新宿区 30 50 71 36 30
02 東京都 05 中央区 78 13 44 28 51
02 東京都 06 港区 58 71 20 10 6
02 東京都 07 八王子市 82 79 16 21 80
02 東京都 08 立川市 50 2 33 15 62
02 東京都 @@ @@@@@@@@@@ 298 215 184 110 229
03 千葉県 09 千葉市 52 91 44 9 0
03 千葉県 10 市川市 60 89 33 18 6
03 千葉県 11 柏市 95 60 35 93 76
03 千葉県 @@ @@@@@@@@@@ 207 240 112 120 82
04 神奈川県 12 横浜市 92 56 83 96 75
04 神奈川県 13 川崎市 30 12 32 44 19
04 神奈川県 14 厚木市 48 66 23 71 24
04 神奈川県 @@ @@@@@@@@@@ 170 134 138 211 118
例2
小計と中計を出す場合
$ cat data
01 関東地区 01 埼玉県 01 さいたま市 91 59 20 76 54
01 関東地区 01 埼玉県 03 熊谷市 82 0 23 84 10
01 関東地区 02 東京都 04 新宿区 30 50 71 36 30
01 関東地区 02 東京都 05 中央区 78 13 44 28 51
01 関東地区 02 東京都 07 八王子市 82 79 16 21 80
02 関西地区 01 大阪府 01 大阪市 91 59 20 76 54
02 関西地区 01 大阪府 02 八尾市 46 39 8 5 21
02 関西地区 01 大阪府 03 川西市 82 0 23 84 10
02 関西地区 02 兵庫県 04 神戸市 30 50 71 36 30
02 関西地区 02 兵庫県 05 姫路市 78 13 44 28 51
02 関西地区 02 兵庫県 06 明石市 58 71 20 10 6
02 関西地区 02 兵庫県 07 加古川市 82 79 16 21 80
02 関西地区 02 兵庫県 08 芦屋市 50 2 33 15 62
02 関西地区 03 京都府 09 京都市 52 91 44 9 0
02 関西地区 03 京都府 10 舞鶴市 60 89 33 18 6
$ sm4 1 4 5 6 7 11 data | keta > data2
$ cat data2
01 関東地区 01 埼玉県 01 さいたま市 91 59 20 76 54
02 関西地区 03 京都府 09 京都市 52 91 44 9 0
02 関西地区 03 京都府 10 舞鶴市 60 89 33 18 6
$ sm4 1 4 5 6 7 11 data | keta > data2
$ cat data2
01 関東地区 01 埼玉県 01 さいたま市 91 59 20 76 54
01 関東地区 01 埼玉県 03 熊谷市 82 0 23 84 10
01 関東地区 01 埼玉県 @@ @@@@@@@@@@ 173 59 43 160 64
01 関東地区 02 東京都 04 新宿区 30 50 71 36 30
01 関東地区 02 東京都 05 中央区 78 13 44 28 51
01 関東地区 02 東京都 07 八王子市 82 79 16 21 80
01 関東地区 02 東京都 @@ @@@@@@@@@@ 190 142 131 85 161
02 関西地区 01 大阪府 01 大阪市 91 59 20 76 54
02 関西地区 01 大阪府 02 八尾市 46 39 8 5 21
02 関西地区 01 大阪府 03 川西市 82 0 23 84 10
02 関西地区 01 大阪府 @@ @@@@@@@@@@ 219 98 51 165 85
02 関西地区 02 兵庫県 04 神戸市 30 50 71 36 30
02 関西地区 02 兵庫県 05 姫路市 78 13 44 28 51
02 関西地区 02 兵庫県 06 明石市 58 71 20 10 6
02 関西地区 02 兵庫県 07 加古川市 82 79 16 21 80
02 関西地区 02 兵庫県 08 芦屋市 50 2 33 15 62
02 関西地区 02 兵庫県 @@ @@@@@@@@@@ 298 215 184 110 229
02 関西地区 03 京都府 09 京都市 52 91 44 9 0
02 関西地区 03 京都府 10 舞鶴市 60 89 33 18 6
02 関西地区 03 京都府 @@ @@@@@@@@@@ 112 180 77 27 6
$ sm4 1 2 3 6 7 11 data2 | keta > data3
$ cat data3
01 関東地区 01 埼玉県 01 さいたま市 91 59 20 76 54
01 関東地区 01 埼玉県 03 熊谷市 82 0 23 84 10
01 関東地区 01 埼玉県 @@ @@@@@@@@@@ 173 59 43 160 64 ※
01 関東地区 02 東京都 04 新宿区 30 50 71 36 30
01 関東地区 02 東京都 05 中央区 78 13 44 28 51
01 関東地区 02 東京都 07 八王子市 82 79 16 21 80
01 関東地区 02 東京都 @@ @@@@@@@@@@ 190 142 131 85 161 ※
01 関東地区 @@ @@@@@@ @@ @@@@@@@@@@ 363 201 174 245 225
02 関西地区 01 大阪府 01 大阪市 91 59 20 76 54
02 関西地区 01 大阪府 02 八尾市 46 39 8 5 21
02 関西地区 01 大阪府 03 川西市 82 0 23 84 10
02 関西地区 01 大阪府 @@ @@@@@@@@@@ 219 98 51 165 85 ※
02 関西地区 02 兵庫県 04 神戸市 30 50 71 36 30
02 関西地区 02 兵庫県 05 姫路市 78 13 44 28 51
02 関西地区 02 兵庫県 06 明石市 58 71 20 10 6
02 関西地区 02 兵庫県 07 加古川市 82 79 16 21 80
02 関西地区 02 兵庫県 08 芦屋市 50 2 33 15 62
02 関西地区 02 兵庫県 @@ @@@@@@@@@@ 298 215 184 110 229 ※
02 関西地区 03 京都府 09 京都市 52 91 44 9 0
02 関西地区 03 京都府 10 舞鶴市 60 89 33 18 6
02 関西地区 03 京都府 @@ @@@@@@@@@@ 112 180 77 27 6 ※
02 関西地区 @@ @@@@@@ @@ @@@@@@@@@@ 629 493 312 302 320
※ダミーフィールドにダミー文字列が存在するので、集計から除外されます。
例3
特殊な場合(ダミーフィールドが無い場合)
$ cat data
埼玉県 91 59 20 76 54
埼玉県 46 39 8 5 21
埼玉県 82 0 23 84 10
東京都 30 50 71 36 30
東京都 78 13 44 28 51
東京都 58 71 20 10 6
東京都 82 79 16 21 80
東京都 50 2 33 15 62
千葉県 52 91 44 9 0
千葉県 60 89 33 18 6
千葉県 95 60 35 93 76
神奈川県 92 56 83 96 75
神奈川県 30 12 32 44 19
神奈川県 48 66 23 71 24
$ sm4 1 1 x x 2 6 data > data2
$ cat data2
埼玉県 91 59 20 76 54
埼玉県 46 39 8 5 21
埼玉県 82 0 23 84 10
@@@@@@ 219 98 51 165 85
東京都 30 50 71 36 30
東京都 78 13 44 28 51
東京都 58 71 20 10 6
東京都 82 79 16 21 80
東京都 50 2 33 15 62
@@@@@@ 298 215 184 110 229
千葉県 52 91 44 9 0
千葉県 60 89 33 18 6
千葉県 95 60 35 93 76
@@@@@@ 207 240 112 120 82
神奈川県 92 56 83 96 75
神奈川県 30 12 32 44 19
神奈川県 48 66 23 71 24
@@@@@@ 170 134 138 211 118
例4
-d<string> オプションでダミー文字列を変更した場合
$ cat data
01 埼玉県 01 さいたま市 91 59 20 76 54
01 埼玉県 02 川越市 46 39 8 5 21
01 埼玉県 03 熊谷市 82 0 23 84 10
02 東京都 04 新宿区 30 50 71 36 30
02 東京都 05 中央区 78 13 44 28 51
02 東京都 06 港区 58 71 20 10 6
02 東京都 07 八王子市 82 79 16 21 80
02 東京都 08 立川市 50 2 33 15 62
03 千葉県 09 千葉市 52 91 44 9 0
03 千葉県 10 市川市 60 89 33 18 6
03 千葉県 11 柏市 95 60 35 93 76
04 神奈川県 12 横浜市 92 56 83 96 75
04 神奈川県 13 川崎市 30 12 32 44 19
04 神奈川県 14 厚木市 48 66 23 71 24
$ sm4 -d+++ 1 2 3 4 5 NF data > data2
$ cat data2
01 埼玉県 01 さいたま市 91 59 20 76 54
01 埼玉県 02 川越市 46 39 8 5 21
01 埼玉県 03 熊谷市 82 0 23 84 10
01 埼玉県 +++ +++ 219 98 51 165 85
02 東京都 04 新宿区 30 50 71 36 30
02 東京都 05 中央区 78 13 44 28 51
02 東京都 06 港区 58 71 20 10 6
02 東京都 07 八王子市 82 79 16 21 80
02 東京都 08 立川市 50 2 33 15 62
02 東京都 +++ +++ 298 215 184 110 229
03 千葉県 09 千葉市 52 91 44 9 0
03 千葉県 10 市川市 60 89 33 18 6
03 千葉県 11 柏市 95 60 35 93 76
03 千葉県 +++ +++ 207 240 112 120 82
04 神奈川県 12 横浜市 92 56 83 96 75
04 神奈川県 13 川崎市 30 12 32 44 19
04 神奈川県 14 厚木市 48 66 23 71 24
04 神奈川県 +++ +++ 170 134 138 211 118