比较并从通讯簿存档中获取一些联系人

比较并从通讯簿存档中获取一些联系人

我有一个地址簿存档 (.abbu) 文件,是我前段时间备份的。由于某种原因,我的一些联系人被删除了,我知道他们在这个备份中。自备份以来(大约 4 个月前),我还更改和添加了一些联系人。我想知道是否有办法打开这个存档而不替换我的所有联系人,然后也许可以以某种方式比较这两个地址簿,看看我需要保留哪些联系人。

答案1

备份.abbu要么全有要么全无。vCard 导出则不然。以下是我将采取的方法:

  1. 选择所有联系人
  2. 文件 > 导出 > vCard > 导出 vCard…
  3. 将其保存在某处。
  4. 文件 > 导入… 你的旧 .abbu 档案,替换所有内容
  5. 文件 > 导入… 您之前保存的 vCard 档案
  6. 现在,通讯簿将允许您使用新的 vCard 信息更新旧档案。您可以选择查看重复项...

PS. 为了安全起见,我还会先导出一个新.abbu档案(而不是替换旧档案),以防出现一些我不知道的 vCard 怪癖,而你把事情搞砸了。;-)

答案2

我知道这个话题很老了,但我认为这可能对未来的用户查询有所帮助。

我基本上是从 ghoppe 开始的:

要识别联系人数据库相对于上次备份的更改:

  1. 执行“文件 > 导出 > 地址簿存档...”(以便进行良好的备份)
  2. 选择所有联系人并执行“文件 > 导出 > 导出 vCard”。将其保存在 after.vcf 中
  3. 文件 > 导入… 您的旧 .abbu 档案,替换所有内容。
  4. 选择所有联系人并执行“文件 > 导出 > 导出 vCard”。将其保存在 before.vcf 中
  5. 打开 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;;; 

它的意思是两个不同的名字,第一个名字重复了四次,最后一个名字重复了三次。

我希望这能有所帮助。当然,这能帮助我在寻找重复卡时识别哪些卡是合并的。

相关内容