在线文本去重(去除重复行)
在线文本去重工具,粘贴多行文本即可去除重复行,支持忽略大小写、忽略行首尾空格、去掉空行、按字母或按长度排序,并可把每行的出现次数标注在结果里,全部在浏览器本地完成,内容不上传。
| 重复的内容 | 出现次数 |
|---|
什么情况需要文本去重
只要是从别处复制来的一列东西,几乎都会带重复。最常见的是这几类:一份从表格里导出后粘在一起的名单,里面同一个人出现了好几次;一列做关键词用的词,同一个词因为大小写或前后多打了空格而被算成两条;从日志、聊天记录、代码里顺手摘下来的片段,同一行反复出现;还有从多份文档里合并出来的段落,同一段被复制了两遍。
去重本身不难,麻烦的是口径:Apple 和 apple 算不算同一条?「上海」和前后带空格的「 上海 」算不算同一条?空行要不要留下?本工具把这些口径都做成了开关,让你按自己的判断去处理,而不是替你偷偷决定。
怎么用
- 把文本粘贴进上面的输入框,一行一条。Excel 或 WPS 里复制一整列直接粘进来就是一行一条。
- 按需要勾选口径:去掉空行(默认开)、忽略大小写、忽略行首尾空格、在结果里标注出现次数。
- 选一个排序方式。想保留原来的先后顺序就选「保持原顺序」。
- 点开始去重,结果会显示在下面的结果框里,点复制结果拿走即可。
几条需要说清楚的规则
- 保留第一条。两行被判定为重复时,输出的是第一次出现那一行的原样内容,包括它原本的大小写和首尾空格。后面的重复行只负责把出现次数加一。
- 「忽略大小写」「忽略行首尾空格」不改写输出。它们只影响「两行算不算同一行」的判断,不会把结果里的字母改成小写、也不会替你去掉原文的空格。
- 换行符会先统一。Windows 的
\r\n和 Mac 老格式的\r都按\n处理,避免同一条内容因为换行符不同而分成两行。 - 末尾换行会算出一个空行。如果文本最后多了一个回车,会多出一行空行;勾着「去掉空行」时它会被清掉,并计入「去掉的空行」。
- 中文排序是按编码顺序,不是拼音。需要按拼音排序的话,本工具帮不上(也不打算偷偷按系统区域设置排,那样结果会因电脑而异)。
为什么不用「丢进一个在线网站就完事」
去重工具满地都是,但名单、客户资料、日志片段这些内容往往是不方便上传的。这个页面的所有处理都在你自己的浏览器里用 JavaScript 完成,没有任何网络请求,关掉页面数据就消失。你可以断开网络再试一次,结果完全一样。
去完重之后常要顺手做两件事:想确认结果有多长、够不够平台的篇幅,用在线字数统计;要去重的本来就是一列 Base64 或一段 JSON,先用Base64 在线编码解码或JSON 在线格式化整理成一行一条,再粘过来效果更好。
常见问题
去重时保留的是哪一行?
保留第一次出现的那一行,并原样输出它的内容 —— 包括它原本的大小写和行首尾空格。后面的重复行只累加出现次数,不会替换掉第一条。想反过来保留最后一条,可以把文本倒序后再去重。
忽略大小写和忽略行首尾空格是什么意思?
这两项只影响「判断两行算不算同一行」的口径,不会改写输出内容。勾选忽略大小写后,Apple 和 apple 会被当成同一行;勾选忽略行首尾空格后,「上海」和「 上海 」也会被当成同一行。输出里显示的仍然是第一条原样的内容。
为什么排序结果和我预期的不一样?
排序基于去重时的比较口径:先比较忽略大小写后的内容,内容再相同就比较原始内容,所以 apple 会排在 Banana 前面。中文按 Unicode 编码顺序排,不是拼音顺序,需要拼音排序请用专门的中文排序工具。
空行会被去掉吗?
默认会。去掉空行默认勾选,凡是去掉首尾空白后为空的整行都会被丢弃,并单独计入去掉的空行数量。如果取消勾选,空行会作为普通的一行参与去重,连续多个空行最后只留下一行。
最多能处理多少行?
单次最多输出 20000 行去重结果。超出时页面会明确提示已截断,并告诉你去重后还剩多少行,不会静默丢数据。日常的名单、关键词表、日志片段都远达不到这个量级。
粘贴的内容会被上传或保存吗?
不会。去重、排序、统计全部在浏览器本地用 JavaScript 完成,文本不会发送到服务器,也不写入任何日志或本地存储。关掉页面即全部消失。