0

大きなデータを含む 2 つのパイプ区切りファイルがあります...それらの列を比較する必要があります..I 列は主キーです......

例えば。one.dat

123|NY|AA|500
569|NY|A|450
777|OK|B|250
899|OK|C|100

2.dat

569|NY|A+|500
777|OK|A|350
899|OK|B|150

出力は次のようになります。

NY  column3 1
NY  column4 1
OK  column3 2
OK  column3 2

これは、NY レコードの場合...列 III には、一致したレコードに対して 1 つの違いがあります..OK レコードの場合...列 3 には、一致したレコードに対して 2 つの違いがあります....

主キーである I 列で 2 つのファイルを結合し、それらの列を比較したいと考えています。

私を助けてください :)

4

1 に答える 1

1

ファイルがソートされている場合、あなたが示している例のように、マージソートのマージフェーズと同様の方法でそれを行うことができます:

  1. 2 つのファイルの先頭から同時に開始し、それぞれから行を読み取ります。
  2. 主キーが一致する場合は、それらを比較して、必要な差分行を出力します。
  3. そうでない場合は、どちらのキーが小さいかを確認し、そのファイルの次の行に進みます。
  4. いずれかのファイルの終わりに到達するまで、2 または 3 を繰り返します。

ファイルが並べ替えられていない場合は、最初に主キーで並べ替えます。

于 2013-09-24T16:34:36.473 に答える