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

 

 

魂内検索

DOCUMENTS

COMMAND

FORUM

UEC DOCS

VIDEO

 

ABC順リスト |  カテゴリ別リスト

(動画教材準備中)

cjoin2x

<概要>

cjoin2x : キーの値が同じレコードが複数存在するファイル同士を連結。

<書式>

Usage   : cjoin2x [+<string>] [-f<n>] key=<n> <master> <tran>
Version : Mon Feb  4 10:53:34 JST 2019
Edition : 1

<説明>

テキストファイル <tran> の "key=<n>" で指定したキーフィールドがマス
ターファイル <master> の第1フィールド(キーフィールド)とマッチした
行を <tran> から抽出して、<master> の情報を連結して出力します。マッ
しない行は、ダミーデータ "_" をフィールド数分だけ結合して出力します。
ダミーデータは指定することもできます。

<master> の第1フィールドについては必ず昇順でソートされていることが
条件になります。

cjoin2 との違いは、<master> のキーフィールドの値が同一のレコードが複
数存在できる点です。<master> と <tran> のキーフィールド値が同一のレ
コード同士を総掛けで連結して出力します。

<master> が空ファイル(0バイト)の場合はエラーになります。

<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フィールド)
が指定できます。

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

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

<例1>

(マスターファイル:master)
$ cat master
1 東京
1 東京
2 大阪
2 大阪

(トランザクションファイル:tran)
$ cat tran
3 栄
2 京橋
3 金山
1 上野
1 新宿
4 天神
2 難波
3 熱田
2 梅田
4 博多

$ cjoin2x key=1 master tran >data
$ cat data
3 _ 栄
2 大阪1 京橋
2 大阪2 京橋
3 _ 金山
1 東京1 上野
1 東京2 上野
1 東京1 新宿
1 東京2 新宿
4 _ 天神
2 大阪1 難波
2 大阪2 難波
3 _ 熱田
2 大阪1 梅田
2 大阪2 梅田
4 _ 博多