cljoin1
名前
cljoin1 : 最長前方一致によるジョイン
書式
使い方とオプション
Usage
cljoin1 key=<n> <master> <tran>
Option
+ng[<fd>]
説明
テキストファイル <tran> の “key=<n>” で指定したキーフィールドがマスターファイル <master> の第1フィールド(キーフィールド)とマッチした行のみを <tran> から抽出して、<master> を連結して出力します。
キーフィールドのマッチは前方一致で行われます。つまり、<tran> のキーが <master> のキーより長い場合、<tran> のキーを <master> のキーの長さに切り詰めた文字列とマッチを行います。複数のキーにマッチする場合、最も長いキーとマッチします。
連結は以下のフィールドを並べた形で行われます。 1. <tran> のキーフィールド以前 2. <master> のキーフィールド 3. <tran> のキーフィールド 4. <master> のキーフィールド以降 5. <tran> のキーフィールド以降
<master> のキーフィールドは必ず昇順にソートされていることが条件になります。更にキーフィールドはユニークでなければなりません。(同じ値のキーフィールドを持つコードが複数あってはなりません)
ljoin1 とは異なり、<tran> についてはこの制約はありません。キーフィールド(第 <n> フィールド)はソートされている必要はなく、同じ値を持つレコードが有っても構いません。
マッチしない行は破棄しますが、+ng オプションを指定すると、ファイルデスクリプタ <fd> へ出力します。<fd> を省略した場合は標準エラー出力へ出力します。
<master> に “-” を指定すると標準入力から読み込みます。<tran> が無指定、あるいは “-” を指定すると標準入力から読み込みます。<master> と<tran> の両方が標準入力の場合はエラーになります。
例(その1)
(マスター)
$ cat master 兵庫県 boke 兵庫県加古川市 boke2 兵庫県加古川市米田町 boke3 東京都 aho 東京都港区 aho2 東京都港区六本木 aho3
(トランザクション)
$ cat tran A 東京都港区六 B C 兵庫県加古川 D E 愛媛県 F $ cljoin1 +ng3 key=2 master trans > ok 3> ng $ cat ok A 東京都港区 東京都港区六 aho2 B C 兵庫県 兵庫県加古川 boke D $ cat ng E 愛媛県 F
Version and Edition
Version : Thu Jan 14 11:01:02 JST 2021
Edition : 1
© 2021 Universal Shell Programming Laboratory site