删除重复行
粘贴一份列表,每一行在首次出现之后的重复内容都会被删除,其余各行保持原有顺序。匹配时可以忽略字母大小写和多余空格,全部处理都在浏览器中完成。
0 个字符 · 0 个词 · 0 行
0 个字符 · 0 个词 · 0 行
完全在当前浏览器标签页中运行,您的文本不会被上传或保存。
功能说明
删除重复行 保留每一行的首次出现,删除之后的重复行,并保持原有顺序。匹配时可忽略大小写和首尾空格,空行可选择保留或删除。
red blue Red green
red blue green
谁需要给列表去重,为什么
合并列表时就会出现重复行。营销人员合并两份导出的邮箱列表,研究人员汇总多个工具里的关键词,开发者从日志文件中收集 URL,老师把三份报名表里的姓名粘贴到一起:最后都会得到出现两次或更多次的条目。电子表格也能去重,但需要先打开文件、选中一列,再找到对应的菜单;如果数据已经在剪贴板里,直接粘贴到文本框会更快。
保持原有顺序比想象中更重要。步骤清单、排名,或者按抓取顺序排列的 URL,一旦排序就失去了意义。这里每一行的首次出现会保留在原位,之后的重复行直接删除,并且会显示被删除的行数,方便你判断结果是否合理。
匹配规则与看不见的差异
读取列表时从上到下逐行处理:每一行先转换成用于比较的键,并存入集合;如果某一行的键已经在集合中,就是重复行。整个过程只需遍历一次,因此几十万行的列表也能很快处理完。这也与经典的 Unix uniq 命令不同:uniq 只能删除相邻的重复行,所以通常要先执行 sort,从而打乱原有顺序。awk 的写法 awk '!seen[$0]++' 与本工具的效果相同。
两行看起来一样,实际上可能并不相同。行尾多一个空格、用制表符代替空格,或者从网页复制来的不间断空格,都会让计算机把它们当作不同的字符串。开启“去除首尾空格”后,会忽略每行两端的空格,包括不间断空格。关闭区分大小写后,“Paris”和“paris”会被视为同一条,保留的是最先出现的写法。空行可以保留,使段落保持分隔,也可以全部删除。
去重之后
常见问题
- 重复行会保留哪一条?
- 保留第一次出现的那一行。之后内容相同的行都会被删除,其余各行保持原有顺序,不会被重新排列。
- 为什么两行看起来一模一样却没有被删除?
- 它们之间存在肉眼看不见的差异,最常见的是行尾空格、制表符或不间断空格。请开启去除首尾空格选项;如果只是大小写不同,则选择忽略大小写。
- 这和 uniq 命令有什么区别?
- uniq 只会删除与上一行相同的行,所以通常要与 sort 搭配使用。本工具能找出文本中任意位置的重复行,并保持原有顺序。
- 能否同时删除重复行并对列表排序?
- 先在这里去重,再把结果粘贴到行排序工具中。分两步操作,需要时可以保留首次出现的顺序,想排序时再排序。