How can I bulk-edit Address Book, in particular to split the contents of First Name into First Name, Last Name?

Solution 1:

If you are comfortable with AppleScript, you should be able to get it done using this web page as a starting point: http://hints.macworld.com/article.php?story=20070813135408868

Otherwise, you can export one or more cards in the vCard format, open that up in a file editor and it looks like a properly separated name field looks like this: "N:Smith;Joe;;;" so if yours look like "N:Joe Smith;;;;" and you are comfortable with regular expressions you should be able to work out a search and replace that would look for 'N:(word1) (word2);' and replace it with 'N:(word2);(word1)'. I think that would give you the right number of ';'.

Solution 2:

You can export from inside AddressBook to vCard format which is ASCII, or use the contacts program to dump your AddressBook to plain text. Find the problematic entries, reformat them using your favorite scripting/programming language, or use Google Refine if you are not a programmer, create a new CSV file, and then re-import. Check it works, then delete the originals.