文本去重
一行一条,去重后保持原来的先后顺序(不是排序后再去重)。
说明
空行会被自动丢弃。想保留空行的段落结构,可以先用「去除换行」工具的「删除多余空行」模式处理。
什么时候用
- 几份渠道导出的邮件列表或关键词表拼在一起,同一行反复出现,要按原来的先后顺序只留一条(不是排序后再去重)时。
- 合并多个 CSV 的同一列(比如 SKU、URL 清单),想去掉重复项但保留原来的优先级顺序,方便人工核对时。
什么时候不用
- 需要知道每行重复了几次、重复出现在什么位置:这里只保留第一次出现,不输出计数。
- 文本是代码或 Markdown,重复行本身有含义(重复的 import、表格的第二条 |---|---| 分隔线):整行去重会把它们删掉。
限制与隐私
处理全在浏览器本地完成,不上传、不写日志。限制:只做整行精确比较(可忽略大小写和首尾空白,不做模糊匹配或同义词归并);空行一律丢弃;结果用单个换行拼接,几十万行的文本渲染会明显变慢。
常见问题
去重会打乱行的顺序吗?
不会。程序从上到下走一遍,第一次出现的行留在原位置,之后相同的行被丢掉,所以结果保持你原来的顺序,适合还想按原顺序对照的名单。这和「排序后去重」不同,那个会改变顺序。勾选忽略大小写时,保留的也是先出现的那种写法。
勾了忽略首尾空白,输出的是哪一版?
是去掉空白后的版本。比较和输出都用 trim 过的字符串,所以结果里每行前后的空格、Tab 都会被删掉;不勾选时原样保留,此时只有完全空的行会被丢弃(只含空格的行会留下)。
十万行名单会卡吗?
去重是 O(n):每行做一次 trim / 小写化当 key 存进对象,十万行通常几百毫秒。真正让人感觉慢的是粘贴和 textarea 的渲染,几十万行时滚动、选中都会变钝,可以分段处理。