在 Ubuntu 10.04 中,是否有任何命令或快捷方式可以将 Evolution 联系人保存为单独的 .vcf 文件而不是 list.vcf?
答案1
这可以通过以下方式轻松实现同步进化。
步骤1:
从 repo 安装最新版本的 syncevolution:
sudo add-apt-repository deb http://downloads.syncevolution.org/apt stable main
sudo apt-get update
sudo apt-get install syncevolution-evolution
syncevolution 有一个--print-items
命令,可以显示特定数据库(evolution 联系人列表;默认为Personal
)的每个联系人姓名和 ID
第2步:
要查看所有数据库(evolution-conatct-list 本地或在线),请在终端中运行此命令:
syncevolution --print-databases
复制数据库名称。
步骤3:
现在在终端提示符下运行以下命令database
:
syncevolution --print-items backend=evolution-contacts database=Personal
您可以Personal
用 Evolution 中的任何其他联系人列表进行替换。
输出结果如下:
pas-id-5006660000000D81: Tony Stark
pas-id-5017A30900000670: Hockeye
pas-id-51717EFD00000096: Hulk
pas-id-5194ABA900000000: Syncevolution
步骤4:
现在将每个联系人导出为单独的 vcf 文件 (pas-id 将是文件的名称)。对于 Tony stark 来说,它将是:
syncevolution --export Tony-Stark.vcf backend=evolution-contacts database=Personal --luids pas-id-5006660000000D81
要同时导出所有联系人,请不带luids
参数运行:
syncevolution --export ~/Desktop/allcontacts/ backend=evolution-contacts database=Personal
它将导出 ~/Desktop/allcontacts 目录中的所有联系人。
我创建了一个简单的脚本,将所有联系人及其姓名作为文件导出(作为 firstnames-lastname.vcf)。
#!/bin/bash
mkdir ~/Desktop/allcontacts/
cd ~/Desktop/allcontacts/
syncevolution --print-items backend=evolution-contacts database=Personal >database
cat database | while read line
do
passid=`echo $line | awk -F: '{print $1}'`
name=`echo $line | awk -F\ '{print $2"-"$NF}'`
syncevolution --export allcontacts/"$name".vcf backend=evolution-contacts database=Personal --luids "$passid"
done
在 gedit 中将脚本保存为 vcf-export。然后运行:
chmod a+x vcf-export
./vcf-export