去重工具
即时去除文本中的重复行。
100% 客户端处理
输入行数: 6
输出行数: 0 (0 已移除)
使用方法
- 粘贴您的文本 — 将包含重复行的文本粘贴或输入到左侧输入框中。
- 选择选项 — 配置大小写敏感性、空白修剪、空行移除和排序偏好。
- 去除重复 — 当您输入或更改选项时,工具会自动实时处理您的文本。
- 复制结果 — 从输出字段复制清理后的去重文本,并在需要的地方使用。
去重是如何工作的
工具会先统一行尾,把 Windows 的 \r\n 和旧版 Mac 的 \r 都转换成单一的 \n,因此无论文件来自哪个操作系统,行为都一致。接着它按换行拆分文本,并根据您的选项逐行处理:启用时修剪首尾空白、丢弃空行。之后它按顺序遍历剩余的行,只有当某行的比较键尚未出现过时才保留它。比较键在区分大小写模式下就是该行本身,在不区分大小写模式下则是转成小写后的行。由于第一次出现者胜出,唯一行的相对顺序得以保留,除非您要求排序,否则没有任何行会移动。
功能特性
- 去除重复行 — 即时检测并删除文本中的重复行。
- 区分大小写或不区分大小写 — 选择是否将大小写变体视为重复。
- 修剪空白选项 — 比较行时忽略前导和尾随空格。
- 移除空行 — 可选地从输出中去除空白行以获得更干净的结果。
- 排序输出选项 — 按字母顺序对去重后的行进行排序,以便更轻松地查看。
各选项的作用
| 选项 | 默认 | 作用 |
|---|---|---|
| 区分大小写 | 开 | Apple 和 apple 是不同行;关闭后只保留第一次出现的大小写 |
| 修剪空白 | 开 | 前导和尾随空格在比较时被忽略,并从输出中移除 |
| 移除空行 | 开 | 空行在去重之前被删除 |
| 排序输出 | 关 | 先去重,再按字母顺序排列保留下来的行 |
前两个选项之间的相互作用很重要。开启修剪时," apple " 和 "apple" 会被当作重复项,保留下来的输出是修剪后的 apple,与哪一个先出现无关。关闭修剪时,它们是不同的行,都会保留。
实操示例:清理一段粘贴的列表
假设您粘贴了六行,最后一行把两组分开:
apple
Banana
apple
cherry
banana
使用默认设置(区分大小写、修剪、移除空行、不排序)时,空行被丢弃,apple 出现两次但只保留第一次,输出为 apple、Banana、cherry、banana —— 共四行。表头会报告输入 6 行、输出 4 行、移除 2 行:一个真正的重复项加一个空行。
现在关闭大小写敏感性,其余保持不变。banana 现在与 Banana 重复,输出缩减为 apple、Banana、cherry —— 三行。注意保留下来的第二个词仍然拼作 Banana,因为那是第一次出现;小写的 banana 被丢弃了。
使用场景
- 清理邮件列表 — 从邮件列表中删除重复的电子邮件地址,避免多次发送相同消息并保持订阅者数据库整洁。
- 去重数据导出 — 从数据库或电子表格导出数据时经常出现重复,此工具可帮助您快速清理这些导出数据。
- 移除重复条目 — 通过删除精确匹配或忽略大小写的重复项,合并姓名、URL、关键词或任何基于行的数据列表。
- 为分析准备数据 — 在运行分析或将数据输入脚本之前,去重可确保计数准确并防止结果偏差。
大小写、空行与行尾
这三个细节造成了大部分困惑,值得说清楚:
- 不区分大小写去重会保留第一次出现的拼写。 转小写只是比较键。如果第一次出现是
USA,后面有一行是usa,输出保留USA。 - 空行不是彼此的重复项。 它们由单独的复选框移除。即使关闭了空行移除,连续的空行也会合并成一个空行,因为第一个是唯一的,其余都是它的重复项。
- 只含空白的行在修剪下会变成空行。 缩进或尾随制表符无法保护一行免于被移除,因为修剪发生在空行判断之前。
- 行尾被统一。 内容相同的 CRLF 文件和 LF 文件会产生相同的输出,因此您可以比较来自不同工具的导出数据,无需预先转换。
常见错误
- 期望按单词去重。 单位是行。
red, blue, red会保持原样,因为它是一行。 - 忘记修剪默认开启。 依赖前导空格的格式(例如缩进的代码)会在输出中丢失缩进。
- 关闭大小写敏感性后又想要小写版本。 工具保留的是第一次出现,而不是小写版本。
- 在提取关键列之前去重。 如上所述,整行比较不会合并只共享一个字段的行。
- 以为排序会删除更多行。 排序只重新排列已经唯一的行,绝不会改变行数。
真实场景
邮件列表清理。 导出订阅者并每行粘贴一个地址,关闭大小写敏感性、开启修剪。这会把 Jane@Example.com 和 jane@example.com,以及仅相差一个多余尾随空格的行合并。它不会把 jane+news@example.com 与 jane@example.com 这类别名合并,因为它们确实是不同的字符串。
服务器日志分诊。 粘贴一块重复的错误行并保持区分大小写,让不同的消息各自独立,然后开启排序,在计数前把相同的错误归到一起。这里的重复抑制是精确的,因此只相差时间戳或请求 ID 的日志行会被保留。
关键词列表。 抓取来的关键词常常因大小写不同而重复。不区分大小写模式会把 SEO Tools 和 seo tools 合并为第一次出现的拼写。它不会合并复数、词干或近似匹配,因此 tool 和 tools 都会保留。
缩进的代码或配置。 这种情况下值得关闭修剪。如果您在去重一段缩进的 YAML 或 Python 代码,默认开启的修剪会剥掉缩进并改变输出含义。
它不是按单词或 token 去重的工具,无法检测拼写错误、单复数这类模糊或近似重复,也无法像电子表格的“删除重复项”那样按关键列比较。它也不会保留原来有多少个空行的信息。当你需要按关键列、按行比较时,电子表格或数据库是更好的工具;当你只有原始的、按行组织的文本且没有 schema 时,这个工具更快且与格式无关。
相关工具
常见问题
保留行的原始顺序吗?
是的,每行第一次出现的位置会被保留,仅删除后续重复的行,因此唯一行的相对顺序保持不变。
去重时可以忽略大小写吗?
是的,启用"不区分大小写"选项可将诸如 'Apple' 和 'apple' 的行视为重复项。启用此模式后,无论大小写如何,第一次出现的行都会被保留。
空行会怎么处理?
您可以使用"移除空行"复选框选择删除或保留空行。启用后,所有空白行都会从输出中剔除;禁用时,空行会像其他行一样处理,仅删除真正的重复行。
不区分大小写模式会改变保留下来的那行的大小写吗?
不会。工具只是把每行转成小写来生成比较用的键,输出中保存的仍是第一次出现的原文。因此在不区分大小写模式下,APPLE、Apple、apple 会合并成原始顺序中最先出现的那一行,并保留它原本的大小写。
它会删除同一行内部重复出现的单词吗?
不会。比较以整行为单位,因此工具看不到一行里两个相同的单词。像 buy now buy now 这样的一行仍是一行唯一内容,会原样保留。要去重单词需要使用分词工具或脚本,而不是这个按行处理的工具。
为什么明明没有完全重复的行,却有行消失了?
通常有两个默认选项在起作用。修剪空白默认开启,因此带缩进的行在比较和输出时都会被去掉缩进;移除空行也默认开启,所以任何修剪后变空的行都会被删除。只含空白的行会彻底消失。把这两个选项都关掉,除真正的重复项外,输入会逐字节保留。
由 HandyTools Hub 团队审校 · 最后更新