ITPub博客

首页 > 应用开发 > IT综合 > 大文本如何按行去除重复值

大文本如何按行去除重复值

IT综合 作者:xiaohuihui 时间:2020-05-27 07:47:21 0 删除 编辑

去重复行,用SQL写很简单,就一句SELECT DISTINCT … FROM。但是文件上没法直接用SQL了,想用SQL还得找个数据库先建表,也很麻烦。如果直接写程序,简单思路就是先打开文件,再逐行读入文本。然后将文本跟缓存中的惟一值比较,是重复的文本就丢弃,否则追加到缓存,待文件读完后,再将缓存中去重后的内容写出到输出文件。

上述思路虽然简单,却只能对付小文件,没法处理大文件。当文件很大(内存装不下)时,就只能用文件做缓存,或者对源文件先排序,再去重。但要实现外存缓存或者大文件排序,自己写还是有点难度和麻烦。

这种情况,如果有集算器就省事多了,用SPL只要一句话:

file("d:/urls.txt").cursor().groupx(#1).fetch()

甚至还可以直接对着文件写SQL:

$select distinct #1 from d:/urls.txt

集算器和SPL不仅能对文本做去重,还有很多运算都可以做,其中大多数查询还能直接用SQL,可以参考: SPL 结构化文本计算

集算器也是进行文件数据源处理的专业工具,可以方便地进行 TXT、Excel、Xml、Json、CSV、ini 等各种文件数据的混合计算、入库以及导出等工作。桌面级计算工具,即装即用,配置简单,调试功能完善,可设置断点、单步执行,每步执行结果都可查看。语法简单,符合人的自然思维,比其他高级开发语言更简单。请参阅 文件处理的应用场景

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69900830/viewspace-2694531/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-12-01

  • 博文量
    326
  • 访问量
    194645