在线从文本中删除重复行
在线从文本中删除重复行——免费、即时、100% 在你的浏览器里完成。可忽略大小写或空白,保留首次或末次出现,并显示删除了多少重复行。还能排序与清理。无需注册。
删除重复行是什么意思?
删除重复行——去重,或叫「dedupe」——是指扫描一段以换行分隔的文本,只保留每个不同行的一份副本。这是任何与数据打交道的人都会遇到的最常见清理任务之一:把累积了重复的邮件列表压缩、把日志缩减为它的唯一消息、找出电子表格某列中的不同值,或把多个列表合并成一个干净的集合。
有趣的问题在于:什么算作重复。逐字节比较是严格的答案,但真实数据更杂乱。两行可以看着完全一样,却相差一个尾随空格,或只在大小写上不同——`Error` 对 `error`。本工具让你自己决定:默认忽略大小写,你也可以启用空白不敏感比较,让各行按其修剪、转小写后的形态匹配。这样你按行的含义去重,而不是按它的确切编码,这几乎总是你真正想要的。
另一个决定是保留哪一份副本。保留首次出现会保持原始顺序、也是默认;保留末次在较晚条目覆盖较早条目时很有用。无论哪种方式,结果都是确定性的,实时统计标记会精确告诉你删除了多少重复,让你永远不必盲目信任工具。
去重与排序及其他清理天然搭配。本工具把它们折进一个面板:删除重复,然后可选地排序、修剪空白、丢掉空行、反转或添加行号。当排序才是主角时,请使用配套的文本行排序工具,它共用同一套引擎。要统计文本的行数和词数,请用字数统计;要看列表两个版本之间改了什么,请用文本对比;要在去重前规范大小写,请用大小写转换。
一切都完全在你的浏览器里进行、没有上传,所以给一个保密列表去重,就和在本地编辑它一样私密。粘贴,唯一结果一秒内即可复制。
Input: alice@example.com bob@example.com alice@example.com ALICE@example.com Exact dedupe (case-sensitive): alice@example.com bob@example.com ALICE@example.com Case-insensitive dedupe (default): alice@example.com bob@example.com ← ALICE collapsed into alice
核心特性
保序去重
默认让每个唯一行以其原始顺序保留一次——行为与 `awk '!seen[$0]++'` 相同,但无需终端。你的列表保持你粘贴时的次序,只是没有了重复。
保留首次或末次出现
选择每一行的首次还是末次出现存活。首次保留为通用清理保持顺序;末次保留在较晚条目覆盖较早条目时理想,比如配置或环境值。
大小写不敏感匹配
默认情况下 `Error`、`error` 和 `ERROR` 合并成一行——大多数列表的自然选择。当大小写有意义、重复必须精确匹配时,打开「区分大小写」。
空白不敏感匹配
「忽略首尾空格」抓住那些只差一个尾随空格或制表符的隐形重复——这是从电子表格和 PDF 粘贴的数据里「相同」行去重失败的头号原因。
实时重复计数
统计标记随键入显示 `12 行 → 9 行 · 删除 3 个重复`。你随时确切知道合并了多少重复——不用猜工具是否真的做了什么。
去重 + 排序一趟完成
启用一个排序顺序,一步得到唯一、按字母(或自然、或按长度)排序的列表。去重先执行、排序随后,因此不会丢失任何东西,输出既干净又有序。
清理开关
同一个面板还能修剪空白、丢掉空行、反转顺序并为结果编号。把它们中的任意几个叠在去重之上,一份混乱粘贴的列表就在一个地方变成干净、唯一、可直接粘贴的输出——无需脚本。
100% 浏览器端隐私
你的文本永远不会离开页面——不上传、不记录、不分析。对邮件列表、访问日志和保密数据都很安全。你可以在 Network 面板自行验证:去重产生的请求数为零。
删除重复行示例
删除精确重复
apple banana apple cherry banana
apple banana cherry
默认行为:每一行只在其首次出现时保留一次,之后的精确重复被丢弃。原始顺序保持不变。统计标记会报告 `5 行 → 3 行 · 删除 2 个重复`。
忽略大小写
Error error ERROR Warning
Error Warning
在「区分大小写」关闭(默认)时,`Error`、`error` 和 `ERROR` 被视为同一行,因此只保留第一个。打开「区分大小写」则把三者作为不同条目保留。
忽略首尾空白
apple apple banana banana
apple banana
启用「忽略首尾空格」,让 `apple` 和 ` apple ` 比较相等。这能抓住那些困扰从电子表格、PDF 和终端复制来的数据的隐形重复——尾随空白常悄悄混进去。
保留末次出现
v1 v2 v1 v3
v2 v1 v3
把「保留出现」切到末次,每一行的最后一次出现会以其最后位置存活。这里保留了第二个 `v1`、删除了第一个。当较晚的条目覆盖较早的时很有用,比如环境变量或配置覆盖。
去重并同时排序
dog cat dog bird cat
bird cat dog
打开升序排序,一步得到干净、唯一、按字母排序的列表。去重先执行、排序随后,因此输出既唯一又有序——非常适合把杂乱粘贴的一列整成整齐集合。
删除空行和重复
alpha beta alpha gamma
alpha beta gamma
在去重的同时启用「删除空行」,一次丢掉空行和重复。统计标记会把两者分开:`6 行 → 3 行 · 删除 1 个重复 · 删除 2 个空行`。
统计存在多少重复
a b a a c b
a b c
即使你只关心数量,去重也能给出答案:统计标记显示 `6 行 → 3 行 · 删除 3 个重复`。这是不必手工计数就能了解一个列表里藏了多少重复的快捷方式。
把两个列表合并成唯一条目
red green blue green yellow red
red green blue yellow
把两个列表首尾相连粘贴、再去重,即可得到并集——每一行都不同、无重复、保持首次出现顺序。这是无需电子表格公式、合并邮件列表、标签集或 ID 列表的最快方式。
如何删除重复行
- 1
粘贴或键入你的文本行
把文本放进输入框。每个换行是单独的一行。重复随键入即时删除——没有提交按钮。末尾的换行会被忽略,不会被算作额外的空行。
- 2
选择什么算作重复
保持「区分大小写」关闭,把 `Foo` 和 `foo` 视为相同,或打开它让它们分开。启用「忽略首尾空格」以抓住只差多余空白的行。
- 3
选择保留哪次出现
「保留出现」默认为首次,保持原始顺序。切到末次,当每一行的最后一次出现应当胜出时——适合较晚条目覆盖较早条目的场景。
- 4
按需添加排序或清理
启用一个排序顺序给唯一结果排字母序,或打开「删除空行」和「修剪每行」在同一趟里整理列表。统计标记会显示每个开关的效果。
- 5
复制唯一结果
点击「复制」把去重后的输出放进剪贴板。用「重置」清空两个框,或用「示例」载入一个范例列表。整个过程中没有任何上传。
常见去重错误
空白藏起了重复
看着相同、却相差一个尾随空格或制表符的行不是精确重复,所以会存活。启用「忽略首尾空格」以按修剪后的形态比较。这是最常见的去重意外,尤其在电子表格和 PDF 数据里。
精确匹配("apple " ≠ "apple"): apple apple ← 尾随空格,被当作唯一保留 banana
忽略空白: apple banana
大小写差异被当作唯一
在「区分大小写」开启时,`Error` 和 `error` 是不同的行、两者都会存活。如果你本意是让它们相同,请关闭「区分大小写」(默认)。反过来,在大小写有意义时关闭它,可能会合并你本想保留分开的行。
开启区分大小写: Error error ERROR ← 三个都保留
不区分大小写(默认): Error ← 其余被合并
以为非相邻的重复会保留
与命令行 `uniq` 不同,本工具删除列表中任意位置的重复,而不仅仅是相邻的——所以你不需要先排序。如果你其实只想合并连续的重复,那本工具不是对的选择;请改为排序或重构你的数据。
假设 uniq 行为(仅相邻): a b a ← 以为会保留,但被删除了
完整去重(本工具): a b ← 后面的 'a' 无论出现在哪都会被删除
把删除空行与去重混为一谈
去重会合并重复的空行、但保留一个;它不会删除所有空行。要丢掉每一个空行,请启用「删除空行」。统计标记会分别报告这两个数字,让你能分辨删掉的是空行还是真正的重复。
仅去重(保留一个空行): alpha (空行) beta
去重 + 删除空行: alpha beta
删除重复行:用例
- 清理邮件与联系人列表
- 粘贴一份累积了重复的导出邮件列表,得到一个唯一的集合。启用大小写与空白不敏感匹配,让 `Bob@x.com`、`bob@x.com` 和 `bob@x.com ` 全都合并成一个地址。
- 把日志缩减为唯一消息
- 给嘈杂的日志去重,看到不同的错误或事件行而没有重复。末次保留在每条消息的最新一次出现比首次更重要时很方便。
- 找出一列中的唯一值
- 从 CSV 或电子表格里复制一列、去重,输出就是不同值的集合——并附带存在多少重复的计数,这也顺带成了快速的基数检查。它还能让你无需电子表格公式就从粘贴的列里找出重复行、剥掉重复行。
- 无重复地合并列表
- 把两个或更多列表首尾相连粘贴、再去重,得到它们的并集:每一行都不同、无重复、保持首次出现顺序。对一次性合并标签、ID 或名字,比电子表格公式更快。
- 去重安全词表
- 完全离线地合并并清理密码词表、子域名列表或模糊测试字典。由于每项操作都在本地,敏感的安全数据留在你的机器上、绝不发往外部服务。
- 整理 import 或依赖列表
- 删除复制粘贴时混进来的重复 import 语句、包名或依赖条目。加一个排序顺序,产出一份规范、唯一的列表,让未来的 diff 保持精简。
- 为分析准备数据
- 在计数、绘图或加载数据前剥掉重复,以免重复扭曲你的结果。搭配字数统计来度量清理后的列表,或搭配文本对比与另一个版本比较。
- 为 SEO 去重关键词列表
- 关键词研究导出里满是近似重复。在这里删除精确重复,可选地转小写并修剪,得到一份干净的唯一关键词集,再去分组或映射到页面。
去重是如何工作的
- 哈希集合去重
- 各行用哈希集合(JavaScript 的 `Set` 或 `Map`)去重,键为每一行的比较形态,即便对大列表也给出线性时间性能。每一行的键只计算一次,并以常数时间查找。
- 比较键规范化
- 用于匹配的键由行派生而来:若「忽略首尾空格」开启则先修剪,若「区分大小写」关闭则再转小写。出现在输出里的是原始行、而非规范化的键,所以存活行的大小写和空格得以保留。
- 首次保留 对 末次保留
- 首次保留在某行的键第一次被看到时把它推入结果、跳过之后的重复。末次保留计算每个键的最终索引、只保留该索引处的行,因此存活的那份落在其最后位置,而整体顺序仍跟随输入。
- 行拆分(CRLF / LF / CR)
- 各行按任意换行约定分隔——`\r\n`(Windows)、`\n`(Unix)或 `\r`(经典 Mac)——因此混合或粘贴的输入都能直接用。处理前会丢弃一个末尾换行,这样以换行结束的文件不会在底部登记一个幻影空重复。
- 确定性的流水线顺序
- 流水线按固定序列运行——空白修剪,然后删除空行,然后去重,然后任意排序或随机打乱,然后反转,然后行号。因为重复在可选的排序步骤之前就被合并,打开一个排序顺序会重排唯一集合、而绝不丢掉一个不同的行。
- 重复与空行分别计数
- 统计标记独立跟踪删除的重复数和删除的空行数,计算方式是每个阶段前后的行数差。这让你能看到例如 `删除 1 个重复 · 删除 2 个空行`,而不是一个合并的数字。
- 浏览器内,无需 worker
- 所有去重都在你浏览器的主线程运行、没有服务器往返。典型列表瞬间完成;因为算法是线性且基于集合的,性能能优雅地扩展到很大的输入而不冻结页面。
去重最佳实践
- 修剪空白以抓住隐藏的重复
- 重复存活最常见的原因是不可见的尾随空白。给从电子表格、PDF 或终端粘贴的数据去重时,启用「忽略首尾空格」,让各行按其修剪后的形态比较。如果删除的重复数比你预期的低,通常就是空白在作祟。
- 有意识地决定大小写敏感
- 对邮箱、标签和人类可读的列表,保持「区分大小写」关闭,让 `Foo` 和 `foo` 合并。只对像标识符或哈希这类大小写有意义、`A1B2` 与 `a1b2` 确实不同的数据才打开它。选错会悄悄改变哪些行存活。
- 覆盖语义用末次保留
- 当较晚的条目应当胜出时——配置覆盖、环境变量、以最新状态为准的日志——把「保留出现」切到末次。对应从顶部保持顺序的通用列表清理,保持默认的首次。
- 在计数或分析前先去重
- 重复会扭曲计数、图表和聚合。先删除重复,再度量。统计标记也顺带成了快速的基数检查:输入行数与输出行数之差告诉你数据带了多少重复。
- 去重后排序得到规范列表
- 如果你需要一份稳定、可比较的列表——用于配置文件、清单或 diff——请在去重的同时启用一个排序顺序。一份唯一、有序的列表产生最小的 diff,也便于用文本对比与另一个版本比较。
- 复制前用实时计数验证
- 复制前扫一眼统计标记。`12 行 → 9 行 · 删除 3 个重复` 确认工具做了你想做的。如果数字看着不对——你预期有重复却删了零个——回头检查大小写和空白设置。
常见问题
这个工具是做什么的?
它保留重复项的首次还是末次出现?
我的文本会被上传到任何地方吗?
如何删除重复但忽略大小写?
为什么我看起来相同的行没有被去重?
删除重复会改变我行的顺序吗?
我能同时删除重复并排序吗?
空行会怎样处理?
列表大小有上限吗?
这与命令行(sort -u、awk、uniq)相比如何?
这比在 Excel 或 Notepad++ 里删除重复行快在哪?
我能用它找出一列中的唯一值吗?
相关工具
查看所有工具 →大小写转换器 — UPPERCASE、lowercase、camelCase 一次搞定
文本处理
在浏览器里把文本一键转成 UPPERCASE、lowercase、Title Case、Sentence case、camelCase、PascalCase、snake_case、kebab-case、CONSTANT_CASE 等共 15 种命名格式。免费、纯本地、无需注册。
Lorem Ipsum 生成器 — 免费占位文本工具
文本处理
即时生成 Lorem Ipsum 占位文本 — 按段落、句子、单词、字节或列表生成。可复制或下载为纯文本、HTML、Markdown 或 JSON。100% 免费、隐私、纯浏览器运行,无需注册。
免费正则表达式测试器 — 在线实时匹配与调试
文本处理
在浏览器里实时测试正则表达式:高亮匹配、捕获组、命名分组、替换预览、字符串切分与逐 token 解释,支持 JavaScript(ECMA-262)方言、g/i/m/s/u/y/d 七个 flag、ReDoS 超时保护。100% 本地运行、免费、无需注册。
URL Slug 生成器 — 一键把任意文本转成 slug
文本处理
在线把任意标题即时转成干净、利于 SEO 的 URL slug。可音译重音字符与西里尔字母,也可保留 Unicode 文字。100% 本地运行,数据不离开浏览器。
按字母与自然顺序排序文本行
文本处理
在浏览器里对文本行排序:按字母顺序、数字顺序(自然排序)或行长度,升序或降序皆可。免费在线行排序工具,100% 纯本地运行。还能去重、反转与清理列表。无需注册,数据不上传。
在线文本对比与差异工具
文本处理
在浏览器内即时对比两段文本。双栏并排展示、行内单词级高亮、统一 diff 补丁导出,支持忽略大小写、空白与空行。100% 本地浏览器处理,无需上传,文本不离开你的设备。