You could use
vcf-isec to find unique and shared variants. The former works on a single VCF file, the latter with multiple VCF files. I'd play around with them until a better solution can be found.
update: bcftools isec does exactly these kind of comparisons, and faster. this quick example
bcftools isec -p isec_results file1 file2
generates in a isec_results folder vcf files with private variants from file1, private variants from file2, file1 variants shared with file2, and file2 variants shared with file1. these 2 last ones allow keeping file1 or file2 annotations respectively.