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

 

 

魂内検索

DOCUMENTS

COMMAND

FORUM

UEC DOCS

VIDEO

 

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

cjoin1

<概要>

cjoin1 : シーケンシャルキーマッチングジョイン

<書式>

Usage   : cjoin1 [+ng[<fd>]] key=<n> <master> <tran>
Version : Mon Feb  4 10:53:34 JST 2019
Edition : 1

<説明>

テキストファイル <tran> の "key=<n>" で指定したキーフィールドがマス
ターファイル <master> の第1フィールド(キーフィールド)とマッチした
行のみを <tran> から抽出して、<master> の情報を連結して出力します。
連結は <tran> のキーフィールドの直後に <master> の内容を挿入する形で
行われます。

<master> の第1フィールドは必ず昇順でソートされていることが条件にな
ります。更にキーフィールド(第1フィールド)について、各レコードがユ
ニークでなければなりません。(第1フィールドが同じ値をもつレコードが
複数あってはなりません)

join1 とは異なり、<tran> についてはこの制約はありません。キーフィー
ルド(第 <n> フィールド)はソートされている必要はなく、同じ値を持つ
レコードが有っても構いません。

<key>としては、
key=3     <tran> の第3フィールド
key=3/5   <tran> の第3,4,5フィールド(<master> は第1,2,3フィールド)
key=4@3   <tran> の第4,3フィールド(<master> は第2,1フィールド)
key=NF    <tran> の最終フィールド(<master> は第1フィールド)
key=NF-3  <tran> の(最終-3)フィールド(<master> は第1フィールド)
が指定できます。

マッチしない行は破棄しますが、+ng オプションを指定すると、ファイルデ
スクリプタ <fd> へ出力します。<fd> を省略した場合は標準エラー出力へ
出力します。

<master> に "-" を指定すると標準入力から読み込みます。<tran> が無指
定、あるいは "-" を指定すると標準入力から読み込みます。<master> と
<tran> の両方が標準入力の場合はエラーになります。

cjoin1 は <master> 全体をメモリーに読み込みますので、<master> が巨大
だとメモリー確保エラーが起きるので注意が必要です。

<例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 +ng3 key=1 master tran > ok-data 3> ng-data
$ cat ng-data
0000001 46 39 8  5  21
0000004 58 71 20 10 6
0000009 60 89 33 18 6

<例3> 標準入力から読む

$ cat master | cjoin1 key=1 - tran
$ cat tran | cjoin1 key=1 master -
$ cat tran | cjoin1 key=1 master      # "-" を省略できます。