文本
去除重复行
粘贴一份列表——日志行、邮箱、商品编号、标签——只留下不重复的条目。默认保留出现顺序,你仍然能看出哪一条最先出现。
怎么用
- 把列表粘贴进来,一行一条。
- 点「保留首次出现」去重,顺序不变。
- 需要字母序就点「排序并去重」。
- 点上方按钮复制结果。
去重其实有三种语义
保留首次出现,顺序不变,适合日志、时间线和任何顺序有意义的列表。保留末次出现,适合「后面的覆盖前面的」场景,比如配置覆盖或重复导入。先排序再去重,得到的是规范化的清单,这正是在对比两份导出数据之前该做的事。这个工具提供第一种和第三种,两者合起来能覆盖大部分实际需求。
先归一化,再比较
去重之后还活下来的「重复」,差别往往肉眼看不见:行尾多一个空格、从网页复制来的不间断空格、同一个带重音字母的不同 Unicode 规范化形式。先把行尾空白清掉;如果数据来自多个来源,比较前统一规范化到 NFC。否则你会被告知这份清单有四十个唯一值,而实际只有三十八个。
一次邮件列表清理的全过程
导出列表、粘进来、保留首次出现去重,然后用剩下的条数对比原始条数。一万两千个地址掉到九千四,这不是 bug——通常是同一个人用公司邮箱和个人邮箱各注册了一次,或者重复导入过。
比较之前先处理那些「廉价的差异」:行尾空格、域名部分大小写混用(理论上本地部分是区分大小写的,实际上没人真的这么用)、以及转发邮件里带尖括号包裹的地址。先做这一步,重复数通常会直接翻倍。
常见问题
区分大小写吗?
默认区分,「Apple」和「apple」算两行。处理文件名和编号时这通常正是想要的行为;如果希望合并,先用大小写转换工具统一大小写。
空行会被删掉吗?
空行也视为一个值,所以除第一行外其余空行都会消失。粘贴时末尾多出的换行通常就这样被清掉了。
能处理多长的列表?
几万行没问题。计算在浏览器里完成,上限取决于设备内存,而不是服务器配额。
内容会上传吗?
不会。整个过程没有上传步骤,文本不会离开这个标签页。
只差大小写的重复会被合并吗?
默认不会,因为 Apple 和 apple 是两个不同的字符串。想合并就先把整份清单转成小写。
会顺带删掉空行吗?
不会——空行也是一个值。把删空行当作单独一步,这样你能看到原本有多少行。