ToolBench

文本

去除重复行

粘贴一份列表——日志行、邮箱、商品编号、标签——只留下不重复的条目。默认保留出现顺序,你仍然能看出哪一条最先出现。

怎么用

  1. 把列表粘贴进来,一行一条。
  2. 点「保留首次出现」去重,顺序不变。
  3. 需要字母序就点「排序并去重」。
  4. 点上方按钮复制结果。

去重其实有三种语义

保留首次出现,顺序不变,适合日志、时间线和任何顺序有意义的列表。保留末次出现,适合「后面的覆盖前面的」场景,比如配置覆盖或重复导入。先排序再去重,得到的是规范化的清单,这正是在对比两份导出数据之前该做的事。这个工具提供第一种和第三种,两者合起来能覆盖大部分实际需求。

先归一化,再比较

去重之后还活下来的「重复」,差别往往肉眼看不见:行尾多一个空格、从网页复制来的不间断空格、同一个带重音字母的不同 Unicode 规范化形式。先把行尾空白清掉;如果数据来自多个来源,比较前统一规范化到 NFC。否则你会被告知这份清单有四十个唯一值,而实际只有三十八个。

一次邮件列表清理的全过程

导出列表、粘进来、保留首次出现去重,然后用剩下的条数对比原始条数。一万两千个地址掉到九千四,这不是 bug——通常是同一个人用公司邮箱和个人邮箱各注册了一次,或者重复导入过。

比较之前先处理那些「廉价的差异」:行尾空格、域名部分大小写混用(理论上本地部分是区分大小写的,实际上没人真的这么用)、以及转发邮件里带尖括号包裹的地址。先做这一步,重复数通常会直接翻倍。

常见问题

区分大小写吗?

默认区分,「Apple」和「apple」算两行。处理文件名和编号时这通常正是想要的行为;如果希望合并,先用大小写转换工具统一大小写。

空行会被删掉吗?

空行也视为一个值,所以除第一行外其余空行都会消失。粘贴时末尾多出的换行通常就这样被清掉了。

能处理多长的列表?

几万行没问题。计算在浏览器里完成,上限取决于设备内存,而不是服务器配额。

内容会上传吗?

不会。整个过程没有上传步骤,文本不会离开这个标签页。

只差大小写的重复会被合并吗?

默认不会,因为 Apple 和 apple 是两个不同的字符串。想合并就先把整份清单转成小写。

会顺带删掉空行吗?

不会——空行也是一个值。把删空行当作单独一步,这样你能看到原本有多少行。