悦省yueser.com

← 全部指南

删除重复行怎么用:为什么有的没被去掉

从表格或聊天记录复制来的名单,同一行常常出现好几次。去重只保留第一次出现的位置,其余删掉,行的内容本身不改。

打开工具:删除重复行

什么场景真的需要它

合并几份名单时最需要。三份表格各有一列邮箱或电话,拼起来后重复很多;去重之后才能知道真实人数。关键词、标签、URL 列表、产品编号也是同样的用法,去完再排一次序,漏网的近似项更容易看出来。

另一类场景是清理导出数据。系统导出的日志里同一事件反复出现,或者聊天记录里同一句话被多次转发,去重后剩下的才是独立条目。做统计前先看一眼重复量,也能判断数据质量。

怎么做不出错

比较以整行为单位,逐字符进行,区分大小写。行首或行尾多一个空格、中间用了全角空格、标点不同,都会被当成另一行。所以「看起来一样」却没被删掉,通常就是差在这些看不见的地方。

保留的是第一次出现的那一行,后面完全相同的才删除。因此原始顺序不能乱:去重前如果先排序,留下的会是排序后的第一条。建议顺序是先去行首尾空格、再去重,必要时最后排序。空行也遵守同一规则,多个空行只会剩下一个。

替代方案与不该用的地方

需要忽略大小写去重,先统一转小写再处理,但要注意这样会改变原始值。近似重复(Acme 与 Acme Inc.、带区号的电话、大小写不同的邮箱)本工具不会合并,需要模糊匹配或脚本。

数据量大或在表格里时,用 Excel 的删除重复项、数据库的 DISTINCT,或命令行的 sort 加 uniq 更合适。去重前务必留一份原始数据,因为删掉的行不会提示你删了什么。

常见问题

为什么看起来一样的行没有被删掉?

因为比较是逐字符的:行首或行尾多一个空格、用了全角空格或不同的标点,都会被视为另一行。先执行去除行首尾空格,再去重就能解决大部分情况。

重复行会保留哪一条?

保留第一次出现的那一条,后面的才删除,所以原始顺序会影响结果。如果先排序再去重,留下来的就是排序后的第一条,而不是原文件里的第一条。

能忽略大小写去重吗?

本工具区分大小写,React 和 react 会被当作两行。需要忽略大小写时,先全部转成小写再去重,但这样也会改变原始写法,建议留一份备份。

相关工具:删除重复行