- Tukubaiマニュアル
  - cgi-name(1)
  - check_attr_name(1)
  - check_need_name(1)
  - comma(1)
  - count(1)
  - ctail(1)
  - delf(1)
  - divsen(1)
  - getfirst(1)
  - getlast(1)
  - gyo(1)
  - han(1)
  - join0(1)
  - join1(1)
  - join2(1)
  - juni(1)
  - kasan(1)
  - keta(1)
  - keycut(1)
  - loopj(1)
  - loopx(1)
  - map(1)
  - marume(1)
  - mdate(1)
  - mime-read(1)
  - mojihame(1)
  - nameread(1)
  - plus(1)
  - rank(1)
  - ratio(1)
  - retu(1)
  - self(1)
  - sm2(1)
  - sm4(1)
  - sm5(1)
  - tarr(1)
  - tateyoko(1)
  - tcat(1)
  - unmap(1)
  - up3(1)
  - yarr(1)
  - ycat(1)
  - yobi(1)
  - ysum(1)
  - zen(1)

  - タグ形式(5)
  - ネーム形式(5)
  - フィールド形式(5)
  - マスタファイル(5)
  - ネームファイル(5)
  - トランザクションファイル(5)

# Tukubaiオンラインコマンドマニュアル

## cjoin1(1)

### 【名前】

cjoin1 : トランザクションファイルにマスタファイルを連結(一致した行のみ連結)

### 【書式】

    Usage	: cjoin1 [+ng[<fd>]] key=<n> <master> <tran>
    Version	: Fri Jul 27 20:25:12 JST 2012

### 【説明】

tranのkey=<n>で指定したキーフィールドがmasterの第1フィールド(キーフィールド)と一致した行のみtranから抽出して、masterの情報を連結して出力する。連結はtranのキーフィールドの直後にmasterの内容を挿入連結する形で実施される。

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

masterの第1フィールドは必ず昇順で整列されていることが条件となる。さらに、masterについてはキーフィールド(第1フィールド)について、各行がユニークでなければならない(第1フィールドが同じ値をもつ行が複数あってはならない)。tranの第<n>フィールドは整列されていなくてもよく、同じ値を持つキーフィールド(第<n>フィールド)はいくつあっても構わない。

キーに選択するフィールドは複数指定することもできる。たとえばkey=3/5のように指定した場合、tranの第3、第4、第5フィールドを意味するようになる。またこの場合、masterのキーは第1、第2、第3フィールドとなる。いずれも、指定したkeyについてmasterもtranも整列されている必要がある。

+ng<fd>オプションを使うことで、一致した行を標準出力ファイルへ、一致しなかった行をファイルデスクリプタ<fd>のファイルへ出力することが可能。<fd>を省略した場合は標準エラー出力へ出力する。

tranのキーが整列済みであればcjoin1(1)ではなくjoin1(1)で処理できる。cjoin1(1)はtranのキーが整列されていないものも処理できるが、masterをすべてメモリに読み込むため、メモリ確保エラーが発生する可能性がある。cjoin1(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
    $

    $ cjoin1 key=1 master tran > ok
    $ cat ok
    0000005 崎村______ 50 F 82 79 16 21 80
    0000003 杉山______ 26 F 30 50 71 36 30
    0000007 梶川______ 42 F 50 2  33 15 62
    $

### 【例2】+ngオプションの使い方

    $ cjoin1 +ng key=1 master tran > ok 2> ng
    $ cat ng
    0000001 46 39 8  5  21
    0000004 58 71 20 10 6
    0000009 60 89 33 18 6
    $

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

    $ cat tran | cjoin1 +ng key=1 master > ok 2> ng
    $ cat tran | cjoin1 +ng key=1 master - > ok 2> ng
    $ cat master | cjoin1 +ng key=1 - tran > ok 2> ng

### 【関連項目】

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

last modified: 2012-08-02 11:34:54