linux转换vcf格式,如何使用awk分割vCard通讯录文件(.vcf)

写这个的缘由是某人最近要从某旧山寨手机给某(更旧的)NOKIA手机同步通讯录,由于某山寨android手机输出的vCard文件是单文件里面包含多个记录数据的格式,而NOKIA的古老同步软件只支持单记录vcf,所以就要将单个vCard文件分割成多个vcf,然而Y某本来是懒的动脑,在网上找了半天也没找到现成的办法,所以只有自己来分割了,所谓求人不若求己…方法在这里记录备用。

首先要简单了解下vCard文件的结构,旧vCard(2.1开始)是明码,很容易读取,其格式大致如下:

BEGIN:VCARD

VERSION:2.1

N:Ryouko, Asakura

FN:Asakura Ryouko

ORG: Jouhou Tougou Shinentai (JTS)

TEL;WORK:1-604-436-5505

EMAIL:r.asakura@live.com

END:VCARD

BEGIN:VCARD

VERSION:2.1

N:Yuki, Nagato

可以看出这只是由一系列简单的数据域组成的”field:data”结构,每个单独的联系人的数据都保存在”BEGIN:VCARD”和“END:VCARD”中间的部分,所以仅仅需要把这中间的部分单独输出一个文件就好了,很简单吧?这种事情自然要祭出文本处理专用脚本awk了:

awk ‘/BEGIN:VCARD/{name=”split”++i;}{print > name”.vcf”;}’ to_be_split.vcf

即在发现新的BEGIN:VCARD之后,迭代的生成一个“字符+数字”的新文件名,并将BEGIN:VCARD之后的部分输出到该文件名中。

不过,新的vcard似乎采用了xml格式(xcard),因此以上的脚本似乎就不太管用了,我个人是不太喜欢将xml格式运用到数据中的,因为读起来不直观,而且浪费了不少格式上的存储空间(我这种old type就是这样了)。尽管如此,有兴趣的读者仍然可以通过匹配,之类的关键字来达到类似的分割文件的效果,这里就不再赘述了。

Phylip VCF是一个将VCF(Variant Call Format)文件转换为Phylip格式的工具。VCF文件是一种常用的基因组变异信息文件格式,包含了样本中的单核苷酸变异(SNP)和小型插入/缺失(InDel)等变异信息。 Phylip是一种用于序列比对和系统进化分析的常用格式。它由多个序列的序列标识符和序列数据组,其中每条序列的长度必须相等。Phylip格式便于进行基因序列分析,例如计算种群遗传关系和构建系统进化树等。 Phylip VCF工具可以将VCF文件中的变异信息转换为Phylip格式,方便进行系统进化和种群遗传分析。在转换过程中,Phylip VCF会将每个样本的VCF变异信息解析,并将其转化为相应的碱基或缺失标记。然后,它会生一个符合Phylip格式要求的文件,其中每个样本的序列标识符和序列数据将被填充。 Phylip VCF使用可以帮助研究人员利用VCF文件中的变异数据进行更全面的分析。将VCF文件转换为Phylip格式后,可以使用Phylip格式支持的各种工具进行系统进化和种群遗传分析。这种转换不仅能够减少在使用其他工具时需要进行的文件格式转换步骤,还使得变异信息可以更加方便地与其他序列数据一起进行分析。 总之,Phylip VCF是一个便捷的工具,可以将VCF文件转换为Phylip格式,从而利用Phylip格式的工具进行更多样化的系统进化和种群遗传分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值