ysum

提供: Personal Tukubai for Academic
ナビゲーションに移動 検索に移動

名前

ysum : 横集計する

書式

使い方とオプション

Usage

ysum [-d<str>] [+<n>h] [num=<n>] <file>

説明

<file> ファイルの、同一レコード内の各フィールドの合計をレコード末に追加します。“num=<n>” で指定したフィールドの次以降の全フィールドを集計して最終フィールドの後に追加します。“num=<n>” を省略した場合は“num=0” と同じ動作をします。

-d<str> を指定すると、フィールドが <str> の場合を 0 と扱います。

例(その1)

(元データ:data1)No 氏名 年齢 性別 教科別点数A B C D E

$ keta data1
0000000 浜地______ 50 F 91 59 20 76 54
0000001 鈴田______ 50 F 46 39  8  5 21
0000003 杉山______ 26 F 30 50 71 36 30
0000004 白土______ 40 M 58 71 20 10  6
0000005 崎村______ 50 F 82 79 16 21 80
0000007 梶川______ 42 F 50  2 33 15 62

教科別の点数(5フィールド目以降)を集計して最終フィールドの次に追加します。

$ ysum num=4 data1 | keta
0000000 浜地______ 50 F 91 59 20 76 54 300
0000001 鈴田______ 50 F 46 39  8  5 21 119
0000003 杉山______ 26 F 30 50 71 36 30 217
0000004 白土______ 40 M 58 71 20 10  6 165
0000005 崎村______ 50 F 82 79 16 21 80 278
0000007 梶川______ 42 F 50  2 33 15 62 162
                                       ↑ フィールド 5〜9 の値の集計

例(その2)

+<n>h オプションを指定すると、先頭 <n> レコードをヘッダー行と看做し、集計を行わず、集計値フィールドに “@” を追加します。<n> を省略して +hとした場合は、第1レコードのみをヘッダー行と扱います。

(元データ:data2) No 氏名 年齢 性別 A B C D E

$ keta data2
     No       氏名 年齢 性別  A  B  C  D  E
0000000 浜地______   50    F 91 59 20 76 54
0000001 鈴田______   50    F 46 39  8  5 21
0000003 杉山______   26    F 30 50 71 36 30
0000004 白土______   40    M 58 71 20 10  6
0000005 崎村______   50    F 82 79 16 21 80
0000007 梶川______   42    F 50  2 33 15 62

先頭行を飛ばして教科別の点数(5フィールド目以降)を集計して最終フィールドの次に追加します。

$ ysum +h num=4 data2 | keta
     No       氏名 年齢 性別  A  B  C  D  E   @ <- 先頭行には"@"がつく
0000000 浜地______   50    F 91 59 20 76 54 300
0000001 鈴田______   50    F 46 39  8  5 21 119
0000003 杉山______   26    F 30 50 71 36 30 217
0000004 白土______   40    M 58 71 20 10  6 165
0000005 崎村______   50    F 82 79 16 21 80 278
0000007 梶川______   42    F 50  2 33 15 62 162
                                            ↑ フィールド 5〜9 の値の集計

Version and Edition

Version : Tue Jun 18 19:00:37 JST 2019

Edition : 1


© 2021 Universal Shell Programming Laboratory site