fixmint
ZH

正确删除重复行并排序列表

作者: · · 更新于 2026年11月8日 · 阅读约 4 分钟

要删除重复行,就删掉每一条与前面某行重复的行。但先要决定“相同”是指完全一致,还是清理后一致。完全匹配删除是安全的,却会漏掉大多数实际存在的重复项。去掉首尾空格并忽略大小写能找出多得多的重复项,这正是大多数人处理邮箱、关键词或商品编码列表时真正需要的。

删除重复行列表里有重复项免费使用

一个实例

下面是一份从表格中复制出来的六个邮箱地址:

[email protected]
[email protected]
[email protected] 
[email protected]
[email protected]
[email protected]

这里有三个情况。第一行和最后一行完全相同。第二行只是 A 大写不同。第三行末尾有一个看不见的空格。下面是按每条规则得到的结果:

规则保留的行数原因
删除完全相同的重复行5只有最后一行 "anna" 与第一行完全一致
去掉空格并忽略大小写3anna、ben 和 cara 是仅有的三个不重复的地址

实际使用中,邮箱地址几乎都不区分大小写,所以这里应选第二种规则。如果列表来自杂乱的网页,先用提取邮箱和链接工具处理,确保只有真正的邮箱地址进入去重步骤。

需要留意的近似重复项

近似重复项是指在电脑看来不同、但在你看来意思相同的行。常见原因包括:

  • 大小写:"Blue Widget" 和 "blue widget"。
  • 首尾空格,编辑器里往往看不出来。
  • 不间断空格或其他隐藏字符,它们看起来和普通空格一样(隐藏字符一文对此做了说明)。
  • 标点不同:"e-mail" 和 "email"。
  • 复数形式,需要人工判断,工具不应自动合并。

清理顺序是:先去掉空格,再在大小写没有意义时忽略大小写,最后删除重复行。保留一份原始列表,并用比较文本对比两份列表,检查删掉了哪些内容。

大小写有时很重要

忽略大小写并不总是安全的。商品编码、Linux 上的文件名以及某些标识符都区分大小写,因此 "AB-101" 和 "ab-101" 可能是两件不同的商品。在合并仅大小写不同的条目之前,先确认接收这份列表的系统是否把它们视为同一项。

字母顺序排序与自然排序

对包含数字的列表排序,结果常常出乎意料。普通的字母排序会逐个字符比较,因此 "item10" 排在 "item2" 前面,因为字符 1 排在 2 之前。

以下是三个条目的区别:

  • 字母顺序:item1, item10, item2
  • 自然排序:item1, item2, item10

自然排序会把数字当作数字来比较,所以 2 排在 10 前面。为什么 10 会排在 2 前面一文有更详细的说明。文件名、货架编号、版本号以及任何以计数结尾的内容,适合用自然排序。名称和词语则适合普通的字母排序,这也是人们通常的预期。想在自己的列表上比较两种顺序,可以把内容粘贴到文本行排序中,然后在 A→Z 和 数字 之间切换。

还有两点值得注意:

  • 排序不会删除重复项。应先去重再排序,否则排序只会把重复项挨在一起,便于查看,但并不会删除它们。
  • 如果列表本身有含义,就保持原有顺序。步骤清单或排名表不应排序。

保留第一次出现的行

删除重复行时,大多数工具会保留每个行的第一次出现,并丢弃之后的。当行中带有额外信息时,比如姓名和日期,这一点很重要。如果第一条是过时的版本,那么在删除之前,先按日期排序,或者手动核对重复项。

检查结果

在处理前后分别统计行数。在邮箱的例子中,六行变成了三个不重复的地址,因此删掉了三行。如果删掉的行数比预期少,就检查被删除的行。重复删除是按整行匹配的,所以列表中两位姓名相同的不同人员,或标题相同但编码不同的两件商品,一旦去掉编码,看起来就完全一样。应当只对定义条目的字段去重,而不是对只用来描述的字段去重。

在 fixmint 中操作

  1. 把列表粘贴到你的列表中,每行一项。
  2. 保持去除空格勾选(默认已勾选),只有在大小写没有意义时才勾选忽略大小写。
  3. 勾选删除空行,同时去掉空白行。
  4. 选择排序方式:保持原顺序、A→Z 或 数字。
  5. 复制结果,或使用下载 .txt。

特殊情况

  • 空行。 连续的几个空行可能会被当作重复项。如果想保留一个空行用于分隔,请把删除空行作为单独的步骤。
  • 多行记录。 重复删除是逐行进行的。如果每条记录跨越多行,它可能会拆散记录,并使各部分顺序错乱。
  • 超大列表。 大文件可以处理,但请对比输出行数和输入行数,以便了解改动了什么。

常见问题

删除重复行时会同时排序吗?

不一定。很多工具会保持原有顺序,所以如果需要排序,请单独操作。

为什么排序时 item10 会排在 item2 前面?

普通字母排序逐个字符比较,而字符 1 排在 2 之前。请使用自然排序,它会把数字当作数字来比较。

删除重复邮箱时应该忽略大小写吗?

通常应该,因为实际中邮箱地址被视为不区分大小写。对于大小写会改变含义的标识符,不要忽略大小写。

由 AI 辅助翻译自英文原文。

评论

    还没有评论。快来抢沙发。

    你的评分(可选)

    你的邮箱不会被显示或保存。

    How to Remain Valuable When Intelligence Becomes Cheap 的封面How to Remain Valuable When Intelligence Becomes Cheap

    224页,探讨当AI能完成大部分认知工作时,哪些人类、经济和战略上的优势依然稀缺。

    $3.84在 Gumroad 获取英文阅读