文本去重

在线文本去重工具,快速去除重复行

关于文本去重

去重看起来就是删掉重复行,真正决定结果的是怎么判定重复。按整行严格比较时,大小写不同(Apple 与 apple)、行首尾多一个空格、全角空格与半角空格、中英文标点差异都会算成不同的行,去重结束看着还有一样的条目。Windows 与 Unix 换行混用时行尾会残留回车字符,肉眼相同的两行被判为不同。顺序与计数也有讲究:保留第一次出现的位置还是排到最后、要不要顺带输出每行的重复次数、空行算不算重复行,都得先定规则。处理上万行时浏览器本地计算仍是秒级完成,内容不经过服务器。

文本去重怎么用

  1. 把需要去重的文本整段粘进输入框,一行一条记录。
  2. 确认比较方式:是否区分大小写、是否忽略行首尾空白。
  3. 执行去重,保留每行第一次出现的位置,其余重复行被删除。
  4. 查看输出并对比行数变化,得到原始行数、去重后行数与删除条数。
  5. 需要核对时切到输出重复项模式,把被删掉的内容单独列出来检查。

使用提示

  • 去重前先去掉行首尾空白再比较,否则换行残留字符和空格造成的伪重复会让去重不彻底,输出里仍留着看着相同的行。
  • 全角空格和半角空格是两个不同字符,从网页复制的文本常带全角空格,先做 Unicode 标准化或显式替换掉它们,再去重。
  • 做域名、邮箱这类去重时先统一转小写再比较,能消掉一批大小写差异造成的重复;反过来要保留区分大小写的同名记录就别转。

文本去重常见问题

去重后为什么还有看起来一样的行
多半是不可见字符差异:行尾残留回车符(Windows 换行按单换行符切分就会这样)、行首尾空格、全角空格或零宽字符。肉眼相同的两行按字符编码比较并不相等。去重前先去掉首尾空白、统一换行符并做一次 Unicode 标准化即可。
大小写不同算重复吗
默认不算。严格比较下 Apple 与 apple 是两个不同的字符串,会各保留一条。要去掉大小写差异带来的重复,开启忽略大小写比较,内部统一转成小写后再判重,输出时选择保留第一次出现的那条原文。
怎么找出去重时删掉了哪些内容
用输出重复项模式:对每行计数,把计数大于 1 的行连同出现次数列出来,计数为 1 的行不显示。核对数据导入质量时很实用,例如检查订单号、手机号、邮箱是否存在重复登记或者被多次上报。
去重会改变行的顺序吗
常规做法保留第一次出现的位置、删掉后面的重复行,剩余行的相对顺序不变。如果选的是先排序再去重,输出会变成字典序,原始顺序就丢了。想同时保留顺序和重复次数,先统计频次,再按原顺序过滤输出。