去除重复行 — 去除文本中的重复行
去除文本中的重复行。区分大小写或忽略大小写,保留首次或最后一次出现,浏览器中运行,无需上传。
Remove Duplicate Lines
Remove duplicate lines from text. Works entirely in your browser.
重复行是每条数据流水线里悄悄存在的噪声。一次又一次累积冗余行的 CSV 导出。一千遍地重复同一条错误的日志文件。同一项被粘贴两次的邮件列表。手动去重——肉眼扫几千行——既慢又容易出错。行去重器用一次操作消除这种噪声,并告诉你去掉了多少重复,让你清楚问题的规模。
保留首次与保留末次之间的差别,比看起来更经常被需要。保留首次保留最早出现的那一条,适用于按时间累积的数据——第一条就是原始那条。保留末次保留最近出现的那一条,适用于随时间被更新的列表——最新版本覆盖旧版本。忽略大小写开关专门应对同一份数据被键入时大小写不一致的常见情形——一份手动录入的邮件列表里既有 ‘John Smith’ 也有 ‘john smith’。
行数统计是把工具从黑盒变成透明盒的关键。工具显示输入行数、输出行数和去掉的重复数。一份 10,000 行的文件产出 3,000 行唯一内容,意味着 70% 是冗余——值得往上游追查。一份 10,000 行产出 9,997 行唯一内容,意味着只是三条漏网的重复,这次去重是兜底而不是清理。统计面板让去重可审计,而一条简单的 sort -u 命令做不到这一点。
使用方法
粘贴你的文本
把多行文本粘贴或键入输入区。工具会逐行扫描,识别重复行,并按所选模式去除它们。行数统计会随文本变化实时更新。
选择去重模式
保留首次出现(默认——保留最早的那一行),或保留最后一次出现。开启忽略大小写时,'Hello' 和 'hello' 视为重复。开启去除前后空白时,比较时忽略行首和行尾的空格。
复制或下载结果
把去重后的文本复制到剪贴板,或下载为 .txt 文件。去除操作是非破坏性的——原始输入会在独立面板中保留,方便对比。
常见问题
空行如何处理?
默认情况下,空行被当作普通行处理,也会被去重。开启「保留空行」后,所有空行无论是否重复都会保留。这在以空行分隔章节的文本文件中很有用——去掉它们会让结构塌缩。
行顺序对重复检测有影响吗?
有影响。工具会保留原始行顺序,并依据该顺序去除重复。保留首次模式删除该行后续所有出现;保留末次模式删除所有早于最后一次的出现,只保留最后一次。保留行的顺序与首次或末次出现的顺序一致。
能按行内的某个字段去重吗?
不能——本工具比较的是整行。要按字段级去重(比如按 email 列给 CSV 去重),先用 CSV 转 JSON 工具转成 JSON,程序化去重,再转回 CSV。行去重器处理的是扁平文本列表。
输入中什么算作「一行」?
按换行字符(LF、CRLF 或 CR)切分行。文件末尾的换行符不计入额外的空行。统计面板显示的是解析后的行数,不是原始字符数。
能处理非常大的文件吗?
去重在内存中完成,在现代浏览器标签页里可处理几十万行的文件。百万行级文件处理时会有短暂停顿。内存占用与独立行数成正比。
限制说明
- 仅整行比较不支持字段级和行内片段的去重。需要按特定列或子串去重时,在使用本工具前先用文本编辑器或脚本预处理。
- 无模糊匹配行按完全相等比较。近似重复(拼写错误、空白变体、编码差异)被当作不同行。近似去重请使用模糊匹配工具。
- 默认按 UTF-8 处理工具把输入视为 UTF-8。其他编码的文件,如果同一字符在文件不同区段编码方式不同,可能产生意外结果。
平台说明
- macOS
- 命令行去重时,`sort -u` 能去重但会重排行,`awk '!seen[$0]++'` 保留原始顺序。需要带保留首次/末次切换的交互式去重,本浏览器工具是更合适的选择。
- Linux
- `uniq` 命令只去除相邻重复。本浏览器工具检测文本中任意位置的重复,不限于相邻行。命令行下把 `uniq` 和 `sort` 组合使用,可以达到同样效果。
- Web
- 完全在客户端运行。加载后离线可用。