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