在一个文本文件(TXT)中,有100万行,如何删除重复的行?
每一行的格式是姓名,手机号码。但是有很多重复的,如何找到并删除这些重复的行呢?有什么软件可以实现吗?或者好的批处理也可以,谢谢。...
每一行的格式是姓名,手机号码。但是有很多重复的,如何找到并删除这些重复的行呢?有什么软件可以实现吗?或者好的批处理也可以,谢谢。
展开
1个回答
展开全部
提供一种思路,bit-map法可以解决你的重复数据的问题。
所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。
使用位图法判断整形数组是否存在重复
判断集合中存在重复是常见编程任务之一,当集合中数据量比较大时我们通常希望少进行几次扫描,这时双重循环法就不可取了。
位图法比较适合于这种情况,它的做法是按照集合中最大元素max创建一个长度为max+1的新数组,然后再次扫描原数组,遇到几就给新数组的第几位置上1,如遇到 5就给新数组的第六个元素置1,这样下次再遇到5想置位时发现新数组的第六个元素已经是1了,这说明这次的数据肯定和以前的数据存在着重复。这种给新数组初始化时置零其后置一的做法类似于位图的处理方法故称位图法。它的运算次数最坏的情况为2N。如果已知数组的最大值即能事先给新数组定长的话效率还能提高一倍。
参考链接里有示例代码:
http://baike.baidu.com/view/6102616.htm?tp=5_11
----------------------------
如果嫌编程麻烦,可以尝试导入到excel之后,高级筛选,去掉重复项,剩下的就是你需要的。但是这么大数据量可能要分几次处理,你自己试试
所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。
使用位图法判断整形数组是否存在重复
判断集合中存在重复是常见编程任务之一,当集合中数据量比较大时我们通常希望少进行几次扫描,这时双重循环法就不可取了。
位图法比较适合于这种情况,它的做法是按照集合中最大元素max创建一个长度为max+1的新数组,然后再次扫描原数组,遇到几就给新数组的第几位置上1,如遇到 5就给新数组的第六个元素置1,这样下次再遇到5想置位时发现新数组的第六个元素已经是1了,这说明这次的数据肯定和以前的数据存在着重复。这种给新数组初始化时置零其后置一的做法类似于位图的处理方法故称位图法。它的运算次数最坏的情况为2N。如果已知数组的最大值即能事先给新数组定长的话效率还能提高一倍。
参考链接里有示例代码:
http://baike.baidu.com/view/6102616.htm?tp=5_11
----------------------------
如果嫌编程麻烦,可以尝试导入到excel之后,高级筛选,去掉重复项,剩下的就是你需要的。但是这么大数据量可能要分几次处理,你自己试试
参考资料: http://baike.baidu.com/view/6102616.htm?tp=5_11
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询