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

 

 

魂内検索

DOCUMENTS

COMMAND

FORUM

UEC DOCS

VIDEO

 

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

kasan

概要

kasan : 累計を求める。

書式

Usage   : kasan [+r] [+<n>h] [key=<key>] val=<val> <file>
Version : Thu May 22 19:59:12 JST 2014

説明

引数のファイル又は標準入力のテキストデータの指定したフィールド(val=)
の値を、各行ごとに加算して指定したフィールドの次のフィールドに挿入し
ます。累計値を求める場合などに使用します。


例1

店別の累計の仕入れ値を算出します。
(4フィールド目の値を加算して5フィールド目に挿入します。)
(元データ:data) 店名 日付 売れ数 仕入数
$ cat data
a店 1日目 103 62
a店 2日目 157 94
a店 3日目 62 30
a店 4日目 131 84
a店 5日目 189 111
a店 6日目 350 20
a店 7日目 412 301

$ kasan val=4 data | keta
a店 1日目 103  62  62
a店 2日目 157  94 156
a店 3日目  62  30 186
a店 4日目 131  84 270
a店 5日目 189 111 381
a店 6日目 350  20 401
a店 7日目 412 301 702
                  ↑各行の4フィールド目の値の加算値(累計)

例2

あるフィールドの値が変わった場所で加算をリセットする場合は、そのリセ
ットのキーとなるフィールドを "key=" で指定します。

店別の累計仕入数を算出します。
(1フィールド目が変わるごとに加算をリセットします)
(元データ:data) 店名 日付 売れ数 仕入数
$ cat data
a店 1日目 103 62
a店 2日目 157 94
a店 3日目 62 30
a店 4日目 131 84
b店 1日目 210 113
b店 2日目 237 121
b店 3日目 150 82
b店 4日目 198 105
c店 1日目 81 52
c店 2日目 76 49
c店 3日目 38 21
c店 4日目 81 48

$ kasan key=1 val=4 data | keta
a店 1日目 103  62  62
a店 2日目 157  94 156
a店 3日目  62  30 186
a店 4日目 131  84 270
b店 1日目 210 113 113  ← 累計加算をリセット
b店 2日目 237 121 234
b店 3日目 150  82 316
b店 4日目 198 105 421
c店 1日目  81  52  52  ← 累計加算をリセット
c店 2日目  76  49 101
c店 3日目  38  21 122
c店 4日目  81  48 170

例3

元のデータのフィールドをその加算値と置き換えて出力する場合は "+r" オ
プションを使用します。

仕入れ数を累計仕入れ数に置き換えます。
(4フィールド目の加算値を4フィールド目に出力します。)
(元データ:data) 店名 日付 売れ数 仕入数
$ cat data
a店 1日目 103 62
a店 2日目 157 94
a店 3日目 62 30
a店 4日目 131 84
a店 5日目 189 111
a店 6日目 350 20
a店 7日目 412 301

$ kasan +r val=4 data | keta
a店 1日目 103  62
a店 2日目 157 156
a店 3日目  62 186
a店 4日目 131 270
a店 5日目 189 381
a店 6日目 350 401
a店 7日目 412 702
              ↑加算(累計)値と置き換え


例4

"+<n>h" オプションを付けると先頭の<n>レコードを飛ばして、加算値を計
算します。先頭行に、既に項目名などのヘッダーが付与されているデータを
計算する場合などに使用します。新たに増える加算値のフィールドのヘッダ
ーは "@" となります。

(元データ:data)
$ cat data
店名 日付 売れ数 仕入数  <- 項目名のヘッダーがある。
a店 1日目 103 62
a店 2日目 157 94
a店 3日目 62 30
a店 4日目 131 84
a店 5日目 189 111
a店 6日目 350 20
a店 7日目 412 301

$ kasan +h val=4 data | keta
店名  日付 売れ数 仕入数   @       <- 追加フィールドは "@"
 a店 1日目    103     62  62
 a店 2日目    157     94 156
 a店 3日目     62     30 186
 a店 4日目    131     84 270
 a店 5日目    189    111 381
 a店 6日目    350     20 401
 a店 7日目    412    301 702

$ kasan +r +h val=4 data | keta
店名  日付 売れ数   @              <- "仕入数" が "@" に置き換わる
 a店 1日目    103  62
 a店 2日目    157 156
 a店 3日目     62 186
 a店 4日目    131 270
 a店 5日目    189 381
 a店 6日目    350 401
 a店 7日目    412 702


例5

小数点のあるデータを加算する場合、それまでの行にある最大小数桁数に合
わせて出力します。
$ cat data
A 1
A 1.2
A 1.23
B 2
B 2.34
B 3

$ kasan key=1 val=2 data
A 1 1
A 1.2 2.2
A 1.23 3.43
B 2 2
B 2.34 4.34
B 3 7.34


例6

val=<pos> で指定できるのは、数値、範囲(/)、列挙(@)、NF NF-<n> です。
$ kasan val=1 data
$ kasan val=2/4 data <-- 第2~第4フィールドの各フィールドを加算し、
                         加算値をそれぞれのフィールドの直後に挿入し
                         ます。
$ kasan val=2@4 data <-- 第2フィールドと第4フィールドの各フィール
                         ドを加算し、加算値をそれぞれのフィールドの
                         直後に挿入します。
$ kasan val=NF data  <-- NF も指定できます。
$ kasan val=NF-2 data

$ cat data
A 1 2
A 3 4
A 5 6
$ kasan val=2/3 data
A 1 1 2 2
A 3 4 4 6
A 5 9 6 12