这是按“最近更新”来去重 Mac/iOS 联系人的最佳方法。原因很简单:

当你的 Apple 设备里有几百上千条重复联系人时,真正让人崩溃的并不只是“重复”本身——而是你要花大量时间去判断:到底哪一条才是最新、最准确的那条。

为了解决这个问题,我写了一个 Apple Script:它可以把 macOS 通讯录里的所有信息(包括隐藏的元数据)抓取出来,导出成 CSV,然后你就能免费完成去重。

接下来我会用 4 个步骤,演示我如何按“最近记录”来去重 MacBook 通讯录:

  1. 用 Script Editor 提取联系人最近信息
  2. 把联系人导入 Datablist(免费工具)
  3. 按最近时间在 Datablist 里去重
  4. 把清洗后的联系人重新导入 Contacts

📘 关于本指南

  1. 完全不需要会写代码,也能按步骤做完
  2. 建议在 MacOS 上操作

Step 1 of How to Deduplicate iPhone Contacts Based on Recency

👉 下载这个 Apple Script 文件: contacts-deduplication-script-v2.scpt

🧠 理解 Script Editor

Script Editor 是 Mac 自带的自动化工具。我们用它来导出全部联系人信息,以及一些在普通导出 vCard 时通常拿不到的隐藏元数据,比如 “creation date(创建时间)”“modification date(修改时间)”。这些字段正是按“最近更新”去重的关键。

脚本的工作原理

这个脚本本质上就是一个联系人导出器:它会把 Mac 的 Contacts 通讯录里每一条联系人的所有细节抓出来,并整理成桌面上的表格文件(CSV)。

运行后会发生这些事:

  • 扫描整个联系人列表 — 脚本会遍历你在 Mac Contacts 里保存的所有联系人
  • 抓取隐藏元数据 — 导出“creation date / modification date”等平时看不到的数据,让去重更可靠
  • 提取所有联系人字段 — 姓名、电话、邮箱、生日、地址、备注,甚至包括代词(pronouns)和即时通讯信息等
  • 按类型拆分电话和邮箱 — 不会把所有号码塞进一个字段,而是分别输出“work phone / home phone / mobile”等列;邮箱同理
  • 生成结构清晰的 CSV 文件 — 最终保存为桌面上的 “contacts_detailed.csv”(实际文件名会带后缀)

下载脚本后(点这里获取),用 Script Editor 打开。

Script in the finder
Script in the finder

点击顶部菜单里的“Play”按钮运行脚本。

Opening the script to export metadata from the contacts app
Opening the script to export metadata from the contacts app

接着,接受系统弹窗提示,这样你就能看到导出进度。

Export progress
Export progress

❗️ 脚本通常会运行 30–50 秒,具体取决于你的联系人数量。

完成后,你会看到这条通知:

Success notification for contacts export
Success notification for contacts export

现在,你会在桌面(Desktop)看到一个 CSV 文件,名字类似 “contacts_detailed_XXXX.csv”。

The file with duplicated contacts
The file with duplicated contacts

第一步就完成了。

接下来我会带你用一个免费工具来去重联系人。

Step 2 of How to Deduplicate iPhone Contacts Based on Recency

打开 Datablist.com 并注册一个免费账号。

Datablist home page
Datablist home page

💡 Datablist 是什么?

Datablist 是一款 AI 驱动的 spreadsheet 应用,可以用来 deduplicate(去重)clean(清洗)enrich data(数据补全/增强),并自动化各种 workflow。你可以用 Datablist 来 对上千行数据运行 ChatGPT使用 AI-agents、清洗 CRM、抓取任意网站数据、自动处理重复性工作、查找 business emails 等。

把你刚生成的 CSV 导入进来。

Datablist start page
Datablist start page

导入 CSV 时,一定要把每一列映射成正确的数据类型,否则后面去重容易不准。点击数据类型字段进行配置。

Contacts import and property configuration in Datablist
Contacts import and property configuration in Datablist

关键列推荐这样设置:

  • 姓名列(First Name, Last Name) "Text"
  • Phone Numbers → "Phone"
  • Email Addresses → "Email"
  • 日期(Creation Date, Modified Date) "Date"
  • URL → “Url”

映射好某一列后,点击 “Save Property”。

How to edit property type in Datablist
How to edit property type in Datablist

不需要的列也可以通过这个开关跳过。

全部设置完成后,点击 “Continue”。

Configured properties for contacts import
Configured properties for contacts import

现在你就能在 Datablist 里看到(并且应该能认出来)你的联系人了 :)

Datablist collection with duplicated Apple contacts
Datablist collection with duplicated Apple contacts

Step 3 of How to Deduplicate iPhone Contacts Based on Recency

联系人导入完成后,就可以开始去重了:

点击顶部菜单的 "Clean",选择 "Duplicates Finder"。

Datablist collection view and start of the deduplication process
Datablist collection view and start of the deduplication process

选择你的唯一标识符(比如 "Email" 或 "Phone Number"),然后点击 “Next”。

Duplicate identifier configuration in Datablist
Duplicate identifier configuration in Datablist

接下来可以调整 3 个设置:

  • Comparison algorithm — Datablist 需要多高的相似度才判定为重复。点击了解更多
  • Processor — 先把数据标准化(format 统一),匹配会更准确
  • Multiple value matching — 去重前用 ";" 拆分多值字段。例如 'habib@datablist.com;contact@datablist.com' 和 'habib@datablist.com' 会被视为匹配

设置好后点击 “Run duplicates check”。

Duplicates processing settings for Apple contacts in Datablist
Duplicates processing settings for Apple contacts in Datablist

Datablist 会列出所有重复项。下一步这样做:

点击 “Configure the Master Item selection rule”。

Datablist detected 28 duplicated Apple contacts
Datablist detected 28 duplicated Apple contacts

选择规则 “Highest Value on a Property”。

然后在 property 里选 "Creation Date" 或 "Modification Date"(下面有解释)。

最后点击图中高亮按钮刷新合并预览。

Master item settings for deduplicating Apple contacts
Master item settings for deduplicating Apple contacts
  • 想保留“最早那条原始联系人记录”,选 Creation Date — 适合你确信最早建立的那条信息最完整、最准确
  • 想保留“最近更新过的信息”,选 Modification Date — 适合你经常更新联系人信息(比如新号码、新邮箱)

对大多数人来说,Creation Date 通常更稳妥(更接近“保留你最初创建的联系人”)。

设置好之后,回到页面顶部

点击 "Drop conflicting values on existing properties."。

然后点击 红色快捷按钮,一次性丢弃重复联系人里所有冲突字段。

这样就会只保留你选定的“更新/创建时间”那条记录的值,从而可以干净地删除重复项。

Conflicting properties settings for deduplicating Apple contacts
Conflicting properties settings for deduplicating Apple contacts

Conflicting properties settings for deduplicating Apple contacts.

❗️ 注意这一点

如果你选了 “Combine conflicting properties”,重复值会被合并到同一列里,导回 Apple Contacts 后会非常混乱,基本不可用,所以不要这么做。

Datablist 配置好冲突字段的处理方式后,点击 "Refresh Merging Preview"

Configured deduplication settings for Apple contacts in Datablist
Configured deduplication settings for Apple contacts in Datablist

现在你可以预览 Datablist 即将进行的变更。

确认无误后,点击 "Auto merge duplicates when possible",开始自动合并去重。

Auto Merge preview for Apple contacts in Datablist’s deduplication suite
Auto Merge preview for Apple contacts in Datablist’s deduplication suite

如果你每一步都跟着做,最终会看到这样的提示:

Datablist success notification for deduplicating Apple contacts
Datablist success notification for deduplicating Apple contacts

Step 4 of How to Deduplicate iPhone Contacts Based on Recency

最后一步,我会演示如何把去重后的联系人从 Datablist 下载到 Mac,并重新导入到 Contacts 通讯录。

开始吧!

❗️ 先删除旧联系人

记得先把旧联系人删掉,否则导回去还会重复。用 “Command + A” 全选联系人,然后按 “delete” 删除。

先在 Datablist 里把 collection 重命名一下,方便下载时识别。

In Datablist you can rename your collection (spreadsheet) and folder
In Datablist you can rename your collection (spreadsheet) and folder

接下来,我们要把日期列隐藏起来,因为导入 Mac Contacts 时这些列不可识别,也就无法导入。操作方法:点击 "Creation Date" 列的表头,选择 "Hide column";"Modification Date" 也同样隐藏。

Hiding the date properties allows you get a custom export
Hiding the date properties allows you get a custom export

点击顶部菜单的 “Export”,选择 “Export all items”。

Datablist allows you to export to a CSV or send to other tools
Datablist allows you to export to a CSV or send to other tools

再点击一次 “Export”,下载去重后的联系人文件。

The last click to export your contacts from Datablist
The last click to export your contacts from Datablist

打开 Mac 上的 Contacts 应用,进入 “File” 并点击 “Import”

Opening the contacts downloaded from Datablist is easy
Opening the contacts downloaded from Datablist is easy

选择你刚下载的文件,然后点击 “Open”。

CSV is the best format to import contacts to Mac
CSV is the best format to import contacts to Mac

然后映射字段(或保持默认映射),点击 "OK" 完成导入。

Mapping the contacts with the right fields is crucial
Mapping the contacts with the right fields is crucial

搞定!你已经成功免费在几分钟内完成 macOS 联系人去重。

Apple Contacts app without duplicates (thanks to Datablist)
Apple Contacts app without duplicates (thanks to Datablist)

结论:

虽然 Apple Contacts 本身没有提供“按最近时间智能去重”的原生功能,但通过 Script Editor 导出包含元数据的 CSV,再配合 Datablist 的智能 Duplicates Finder,任何人都能把 Apple 联系人去重并保留最新信息。

联系人去重 FAQ:常见问题解答

如何在 Mac 上自动删除重复联系人?

macOS 虽然有内置的重复联系人处理功能,但能力比较有限。更推荐用 Datablist 这类免费工具快速识别并合并重复联系人,且可以控制保留哪条记录。

清理 iPhone 重复联系人最快的方法是什么?

最快的方法是:先导出联系人 → 用去重工具清洗 → 再导入回去。整个流程一般 3–5 分钟,并且能最大限度避免丢失重要字段。

如何合并重复联系人且不丢数据?

先把联系人导出作为备份,然后使用像 Datablist 这样的去重工具,在合并时指定保留规则(例如保留最近修改的版本,或保留最初创建的版本),会更安全。

iPhone 和 Mac 为什么会出现重复联系人?

最常见原因包括:同步了多个邮箱账号、从备份恢复、从不同来源导入联系人、手动创建时没检查是否已存在。多设备同步也会更容易产生重复。

我应该多久检查一次重复联系人?

建议每 3–6 个月检查一次,尤其是你经常新增联系人,或同时在多个设备/账号之间同步通讯录时。

重复联系人会影响设备性能吗?

会。大量重复联系人可能拖慢通讯录搜索、增加存储占用,并引发跨设备同步问题。