【发布时间】:2025-12-22 13:50:16
【问题描述】:
我有两个文本文件,每个大小为 3.5GB,我想使用 Unix 脚本进行比较。这些文件中包含大约 500 万条记录。
文件的布局如下。
*<sysdate>
<Agent Name 1>
<Agent Address 1>
<Agent Address 2>
<Agent Address 3>
...
<Agent Name 2>
<Agent Address 1>
<Agent Address 2>
<Agent Address 3>
...
<Total number of records present>*
示例文件。
<sysdate>
Sachin Tendulkar 11051973 M
AddrID1 AddrLn11 AddrLn12 City1 State1 Country1 Phn1 OffcAddr11 OffcAddr12 St1 Cntry1
AddrID2 AddrLn21 AddrLn22 City2 State2 Country2 Phn2 OffcAddr21 OffcAddr22 St2 Cntry2
...
Sourav Ganguly 04221975 M
AddrID1 AddrLn11 AddrLn12 City1 State1 Country1 Phn1 OffcAddr11 OffcAddr12 St1 Cntry1
AddrID2 AddrLn21 AddrLn22 City2 State2 Country2 Phn2 OffcAddr21 OffcAddr22 St2 Cntry2
...
<Total number of records present>
两个文件中代理地址的顺序不同。我需要找到存在于一个文件中但不在另一个文件中的记录以及不匹配的记录。我最初尝试使用 Unix sort 命令对文件进行排序,但由于服务器空间问题而失败。 ETL(Informatica)方法也可以考虑。
任何帮助将不胜感激
【问题讨论】:
-
请发布两个文件的示例,其中包含预期的输出,清楚地显示何时匹配或未命中,即。您是否只需要存在/不存在的代理名称,或者不同的地址决定那个或什么。
-
添加了示例文件。一个是好的文件,另一个是错误的文件。代理将在两个文件中以相同的顺序出现,但每个代理中的地址顺序不同。不匹配的情况: 1. 第一个文件可能比第二个文件有更多的代理。 2. 第一个文件可能在单个代理中存在更多地址。也可能有重复的地址 ID。 3. 相同的地址 ID 在两个文件中可能带有不同的地址行。我需要通过删除错误文件中发生的所有不匹配来使两个文件完全相同。
标签: shell unix informatica-powercenter