Given that Plink reads in VCF files natively, and Plink is your desired output format, I expect that plink --vcf <file>
would be the best option.
As mentioned by @sarah, Plink uses the sample IDs to create family/individual IDs, see "Variant Call Format" section on this page:
VCF files just contain sample IDs, instead of the distinct family and
within-family IDs tracked by PLINK. We offer three ways to convert
these IDs:
--double-id causes both family and within-family IDs to be set to the sample ID.
--const-fid converts sample IDs to within-family IDs while setting all family IDs to a single value (default '0').
--id-delim causes sample IDs to be parsed as <FID><delimiter><IID>; the default delimiter is '_'. If any sample ID
does not contain exactly one instance of the delimiter, an error is
normally reported; however, if you have simultaneously specified
--double-id or --const-fid, PLINK will fall back on that approach to handle zero-delimiter IDs.
If none of these three flags is present, the loader defaults to
--double-id + --id-delim.
There are caveats associated with the types of variants that Plink will pull in from the VCF files, mostly related to limitations of Plink's own file formats. But if your end-goal is Plink, then that should be fine.