【摘要】
本文介绍两个文本文件进行比对,按照需求找出文件中数据相同或不同时,会遇到的几种情况,并用 esProc SPL 举例实现。请点击文本文件比对示例了解详情
在数据处理业务中,有时需要比较两个文本文件内容有哪些相同或不同的数据,本文将介绍文本文件比对的几种情况,如整行比对、关键列比对,同时又分小文件、大文件比对,并提供用 esProc SPL 编写的代码示例。esProc 是专业的数据计算引擎,SPL 中有一套完善的集合运算领域的函数库,做文件比对很方便,写出的代码非常简洁。
1. 小文件比对
1.1 整行比对
有两个文本文件,其每一行是一个字符串,要对这两个文件中整行内容进行比对。处理此问题可以把文件的每一行读成一个字符串,组成一个集合,然后通过两个集合的运算得出结果。
报名绘画、舞蹈兴趣班的同学学号姓名分别记录在paint.txt和dance.txt中,paint.txt部分数据如下所示:
20121102-Joan
20121107-Jack
20121113-Mike
1.1.1. 找相同
把两个文件中整行内容相同的行都找出来,即求两集合的交集。
示例:请找出报了这两个兴趣班的所有同学,记录在p_d.txt文件中。
esProc SPL脚本如下:
1.1.2. 找不同
找不同有以下两种情况:
1、 找出两个文件中所有不相同的行。
示例:找出所有只报了一个兴趣班的同学, esProc SPL脚本如下:
2、找出一个文件中有而另一个文件中没有的行。
示例:找出只报了绘画班的同学和只报了舞蹈班的同学, esProc SPL脚本如下: