在线删除重复行
粘贴任意列表。切换 4 个开关。输出保留你想要的顺序、大小写和空白。为追求落地的数据团队打造。
或按 Ctrl+Enter
大家都在这里清洗什么
04 — 使用场景清洗 CRM、Mailchimp、HubSpot 的导出文件再导入下游系统 — 不会打乱原有的列顺序。
审计大型关键词表,在上线前找出跨广告组重复的词。
INSERT 之前从 CSV / TSV 清除重复行 — 大小写无关、忽略首尾空白,最大 80 MB。
把重复的堆栈和噪声日志合并成一份干净、便于浏览的清单。
使用方法
三个步骤-
01
粘贴列表或上传 .txt
桌面端 10 万行 / 移动端 5K 行内可实时预览。更大的输入会自动切换到大文件模式 —— 同一处理引擎,页面保持响应,直接生成 .txt 文件下载。
-
02
切换四个开关
大小写:是否把 ABC 和 abc 视为相同;首尾空白:比较时忽略行首行尾空白;空行:丢弃所有空行;随机打乱:去重后将输出顺序随机打乱。
-
03
点击执行
重复行合并为一行,保留第一次出现的那一行。输出卡片显示清洗后的列表,按原始顺序排列。
引擎内部
工程笔记- 算法
- O(n) 哈希表去重 · Object.create(null) 无原型链映射
- 阈值切换
- 桌面端:2 MB / 10 万行 · 移动端:300 KB / 5K 行 · 硬上限:80 MB
- 原序保留
- 去重那一遍同时记录每行的首次出现索引
总复杂度 O(n + u log u + s log s),其中 n = 输入行、u = 唯一行、s = 输出长度。早期版本在逐行循环里调用 Object.keys(freqMap).length —— O(n²),156K 行要跑 5 分钟。现在的实现处理同样输入约 500 ms。
超过实时阈值后输入不进 textarea(浏览器原生 word-wrap 在插入时是 O(n))—— 处理改走 Web Worker,页面保持响应,结果以 .txt 文件下载。
Excel 的「删除重复项」和 Google Sheets 的 UNIQUE() 都会在底层重新排列列序;我们默认保留输入的原始顺序。想要随机顺序的话,打开「随机打乱」开关用 Fisher-Yates 算法随机重排即可。
隐私与限制
数据留在哪里一切都在浏览器内运行。你粘贴的列表永远不会上传 —— 页面对你的数据零网络请求,统计层也看不到你输入的内容。页面加载后断网工具照样可用。单次硬上限 80 MB,避免误将几 GB 日志粘入导致标签页卡死。
常见问题
问答不区分大小写去重时,输出也会变成小写吗?
不会。大小写开关只影响比较 —— "Apple" 和 "APPLE" 会被视为重复,只保留第一个,但保留的那一行依然保持原始大小写。输出绝不会被强制转为小写。
能保留每组重复的「最后一次出现」而不是「第一次」吗?
可以 —— 把两个工具串起来。先把输入粘贴到「倒序行」工具反转,再把反转后的列表粘到去重工具;如需回到原始方向,最后再倒序一次即可。两步都在本地完成,零上传。
跟 Excel 的「删除重复项」有什么区别?
三点差异:(1) 我们在浏览器内处理 —— 从任意来源粘贴,无需打开 Excel;(2) 我们严格保留你的大小写和空白,Excel 有时会自动「规范化」单元格内容;(3) Excel 的「删除重复项」常会在内部重新排序整列,我们默认保留原始顺序。
能处理含引号字段(字段内带逗号)的 CSV 吗?
每一行作为单个字符串参与比较 —— 含逗号的引号字段会作为整行的一部分匹配。如果你需要按列去重("删除 B 列相同的行"),这个工具不适合;用 Google Sheets 的 UNIQUE() 或 Power Query 步骤更合适。
文件大小上限多少?
单次硬上限 80 MB。桌面端 2 MB(移动端 300 KB)以上工具自动切换到大文件模式 —— 文本不进 textarea,处理由 Web Worker 完成,结果以 .txt 下载而不是渲染在输出卡片里。
我的数据会被发送到任何地方吗?
不会。一切都在你的浏览器标签内进行——没有上传步骤,统计层也不会看到你粘贴的内容。加载后断 WiFi,工具仍能正常工作。