删除重复行

粘贴一个列表并删除重复行,保留每一项的首次出现。内置区分大小写开关和空行清理功能。

区分大小写
去除每行首尾空白
删除空行

已删除 0 行重复内容。

工作原理

这个工具会按换行符拆分你的文本,然后用一个 JavaScript Set 遍历所有行一次,记录已经出现过的内容。每一行的首次出现会保留在其原始位置;之后的重复项会被删除。由于只需一次遍历并且查找是常数时间,即使是数万行也能瞬间完成去重;而且与经典的 shell 命令 sort | uniq 不同,你的行顺序会被保留下来:不会作为副作用而被按字母排序。

这些选项决定了什么算作"相同的行"。关闭区分大小写后,比较前每一行都会先转为小写(保留的那一行仍然显示原始大小写)。"去除空白"会先去掉每行开头和结尾的空格与制表符,这一点比你想象的更重要:两行在屏幕上看起来完全一样,却可能因为结尾多了一个空格或制表符而不同,逐字节比较会把它们当作不同的行。如果你的重复项没有被检测到,几乎总是因为看不见的空白字符,而去除空白正好能解决这个问题。空行删除是在去重之前进行的,所以单独一个空行不会作为"第一个空行"被保留下来。

整个处理过程只是对你标签页里已有文本运行的几行 JavaScript 代码。不会上传任何内容:打开开发者工具,切换到网络面板,随意粘贴或编辑。永远不会触发任何请求,页面加载完成后这个工具甚至可以离线使用——如果你要清理的列表包含邮箱、网址,或任何你不想发送给陌生服务器的内容,这一点就很重要。