![比较并从通讯簿存档中获取一些联系人](https://linux22.com/image/1247658/%E6%AF%94%E8%BE%83%E5%B9%B6%E4%BB%8E%E9%80%9A%E8%AE%AF%E7%B0%BF%E5%AD%98%E6%A1%A3%E4%B8%AD%E8%8E%B7%E5%8F%96%E4%B8%80%E4%BA%9B%E8%81%94%E7%B3%BB%E4%BA%BA.png)
我有一个地址簿存档 (.abbu) 文件,是我前段时间备份的。由于某种原因,我的一些联系人被删除了,我知道他们在这个备份中。自备份以来(大约 4 个月前),我还更改和添加了一些联系人。我想知道是否有办法打开这个存档而不替换我的所有联系人,然后也许可以以某种方式比较这两个地址簿,看看我需要保留哪些联系人。
答案1
备份.abbu
要么全有要么全无。vCard 导出则不然。以下是我将采取的方法:
- 选择所有联系人
- 文件 > 导出 > vCard > 导出 vCard…
- 将其保存在某处。
- 文件 > 导入… 你的旧 .abbu 档案,替换所有内容
- 文件 > 导入… 您之前保存的 vCard 档案
- 现在,通讯簿将允许您使用新的 vCard 信息更新旧档案。您可以选择查看重复项...
PS. 为了安全起见,我还会先导出一个新.abbu
档案(而不是替换旧档案),以防出现一些我不知道的 vCard 怪癖,而你把事情搞砸了。;-)
答案2
我知道这个话题很老了,但我认为这可能对未来的用户查询有所帮助。
我基本上是从 ghoppe 开始的:
要识别联系人数据库相对于上次备份的更改:
- 执行“文件 > 导出 > 地址簿存档...”(以便进行良好的备份)
- 选择所有联系人并执行“文件 > 导出 > 导出 vCard”。将其保存在 after.vcf 中
- 文件 > 导入… 您的旧 .abbu 档案,替换所有内容。
- 选择所有联系人并执行“文件 > 导出 > 导出 vCard”。将其保存在 before.vcf 中
打开 shell 并执行以下行:
diff after.vcf before.vcf | egrep "(<|>) N:" | sort -k 2 | uniq -c -i -s 2 | tee dif.txt | wc -l && cat dif.txt
这将首先列出一行,指示不同记录的数量(例如,在“删除重复项”之后),然后列出这些记录的条目名称列表(每行前面都有该行的重复次数)。例如:
2
4 < N:John Smith;;;
3 < N:Cath Jones;;;
它的意思是两个不同的名字,第一个名字重复了四次,最后一个名字重复了三次。
我希望这能有所帮助。当然,这能帮助我在寻找重复卡时识别哪些卡是合并的。