0

我有两个带有大数据的管道分隔文件......需要比较它们的列..I列是主键......

例如。一个.dat

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

两个.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 记录...第三列对于匹配记录有一个差异..对于 OK 记录...第 3 列对于匹配记录有 2 个差异....

我想在我的主键 I 列上加入两个文件,然后比较它们的列。

请帮帮我:)

4

1 回答 1

1

如果对文件进行了排序,就像您展示的示例一样,您可以通过类似于合并排序的合并阶段的方式进行排序:

  1. 您同时从两个文件的开头开始,并从每个文件中读取一行。
  2. 如果它们的主键匹配,则比较它们并输出所需的差异行。
  3. 如果没有,您会看到它们中的哪一个具有较小的键,然后转到该文件中的下一行。
  4. 重复 2 或 3,直到您到达其中一个文件的末尾。

如果文件没有排序,请先按主键排序。

于 2013-09-24T16:34:36.473 回答