Tukubaiオンラインコマンドマニュアル - cjoin2(1)

cjoin2(1)

【名前】

cjoin2 : トランザクションファイルにマスタファイルを連結(一致しなかった行はダミーデータへ置換)

【書式】

Usage   : cjoin2 [-d<string>] [+<string>] key=<key> <master> [<tran>]
Version : Mon Sep 19 22:56:05 JST 2022
Edition : 1

【説明】

tranのkey=<n>で指定したキーフィールドがmasterの第1フィールド(キーフィールド)と一致した行をtranから抽出し、masterの情報を連結して出力する。一致しない行はダミーデータ*を連結して出力する。ダミーデータは-dオプションまたは+オプションにて指定できる。

masterに-を指定すると標準入力をマスタファイルとする。tranが無指定かまたは-が指定されている場合には、標準入力がトランザクションファイルとなる。

masterの第1フィールドとtranの第<n>フィールドは整列されていなくてもよく、キーフィールドに同じ値を持つレコードはいくつあっても構わない。

キーに選択するフィールドは複数指定することもできる。たとえばkey=3/5のように指定した場合、tranの第3、第4、第5フィールドを意味するようになる。またこの場合、masterのキーは第1、第2、第3フィールドとなる。key=3@5とすると第3、第5フィールドを意味する。行のフィールド数を意味するNFを使用してNFまたはNF-xの形でフィールド位置を指定することができる

キー指定にひとつでも0があると全フィールドを指定したことになる

tranのキーが整列済みであればcjoin2(1)ではなくjoin2(1)で処理できる。cjoin2(1)はtranのキーが整列されていないものも処理できるが、masterをすべてメモリに読み込むため、メモリ確保エラーが発生する可能性がある。cjoin2(1)はmasterが小さくtranが大容量な場合に効果的に使用できる。

【例1】基本パターン

$ cat master
0000003 杉山______ 26 F
0000005 崎村______ 50 F
0000007 梶川______ 42 F
$
$ cat tran
0000005 82 79 16 21 80
0000001 46 39 8  5  21
0000004 58 71 20 10 6
0000009 60 89 33 18 6
0000003 30 50 71 36 30
0000007 50 2  33 15 62
$
$ cjoin2 key=1 master tran > ok
$ cat ok
0000005 崎村______ 50 F 82 79 16 21 80
0000001 ********** ** * 46 39 8  5  21
0000004 ********** ** * 58 71 20 10 6
0000009 ********** ** * 60 89 33 18 6
0000003 杉山______ 26 F 30 50 71 36 30
0000007 梶川______ 42 F 50 2  33 15 62
$

【例2】-d<文字列> +<文字列> オプションの使い方

$ cjoin2 -d@@ key=1 master tran > ok
$ cat ok
0000005 崎村______ 50 F 82 79 16 21 80
0000001 @@ @@ @@ 46 39 8  5  21
0000004 @@ @@ @@ 58 71 20 10 6
0000009 @@ @@ @@ 60 89 33 18 6
0000003 杉山______ 26 F 30 50 71 36 30
0000007 梶川______ 42 F 50 2  33 15 62
$
$ cjoin2 +@@ key=1 master tran > ok
$ cat ok
0000005 崎村______ 50 F 82 79 16 21 80
0000001 @@ @@ @@ 46 39 8  5  21
0000004 @@ @@ @@ 58 71 20 10 6
0000009 @@ @@ @@ 60 89 33 18 6
0000003 杉山______ 26 F 30 50 71 36 30
0000007 梶川______ 42 F 50 2  33 15 62
$

【例3】標準入力の使い方

$ cat tran | cjoin2 +ng key=1 master
$ cat tran | cjoin2 +ng key=1 master -
$ cat master | cjoin2 +ng key=1 - tran

【関連項目】

cjoin0(1)cjoin1(1)cjoin2(1)join0(1)join1(1)loopj(1)loopx(1)up3(1)マスタファイル(5)トランザクションファイル(5)

Last modified: 2022-09-20 17:03:40