uspTukubaiコマンドに関する様々な資料がここにあります。

 

 

魂内検索

DOCUMENTS

COMMAND

FORUM

UEC DOCS

VIDEO

 

ABC順リスト |  カテゴリ別リスト
動画説明

sm4

概要

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

説明

<file> ファイルに、キーが同じレコードの合計レコードを挿入します。キ
ーフィールドはソートされている必要があります。指定方法は、開始フィー
ルド <k1> から終了フィールド <k2> で指定する方法(従来記法)と、
key=<key> で指定する方法(キーワード記法)があります。<key> は以下の
2形式が可能です。

1. 1         (通常形式)
2. 1/4       (範囲形式 連続したフィールドの指定)

入力は、キーフィールド、ダミーフィールド、集計対象フィールドの三種類
に分けられます。キーフィールドが同じで、ダミーフィールドにダミー文字
列が存在しない、集計対象フィールドの値。これを合計したレコードが新規
に挿入されます。

<d1> から <d2> までのフィールド又は dummy=<dummy> で指定したフィール
ドはダミーフィールドになり、手を加えられず、そのまま出力されます。合
計レコードでは "@" 文字で補完されます。従来記法で <d1> <d2> に "x"
を指定した場合と、キーワード記法で dummy を省略した場合はダミーフィ
ールド無しとなり、集計行のキーフィールドが "@" 文字で補完されます。

集計対象フィールドは、<s1> <s2> を指定した場合は <s1> から <s2> まで
のフィールド、val=<val> を指定した場合は key=<key> と同様なフィール
ド、いずれも指定しなかった場合は、従来記法では <d2> の次以降の全フィ
ールド、キーワード記法ではキーフィールドとダミーフィールド以外の全フ
ィールドになります。同一キーのレコード群の最終行に合計レコードを挿入
します。小計行、中計行を段階的に挿入するために、"@" だけのダミーフィ
ールドがひとつでも存在するレコードは集計から除外されます。この機能に
より、sm4 を複数回使用することができます。

いずれの記法においても、キーフィールド、ダミーフィールド、集計対象フ
ィールドの順でなければなりません。また、全てのフィールドが、いずれか
に指定されなければなりません。

+<n>h を指定した場合、最初の <n> 行はヘッダーとみなされ、集計の対象
とならず、そのまま出力されます。<n> を省略した場合は先頭行のみがヘッ
ダーとみなされます。

-d<string> オプションでダミー文字列を変更することができます。この場
合も、<string>だけのダミーフィールドがひとつでも存在するレコードは
集計から除外され、集計行のキーフィールドには <string> が挿入されま
す。


例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