in reply to file comparison

Since the key field (id) is initial on each line (and can almost certainly be relied on as never needing quotes to contain an embedded comma), the solution is quite simple, as the earlier replies have shown, using hashes.

I wrote and posted a utility here, called cmpcol that handles this directly as a command line:

cmpcol -d ',' -x1 -l1 oldlist newlist
That will treat use the first comma-delimited string on each line of each file as a hash key, and print the set of lines whose keys are unique to the first of the two files (-x1, for exclusive-or set from file1, oldlist in this case). It will also do intersection and union of the two lists.

By default, it only prints the key fields that meet the stated conditions, but the "-l1" ("list full line of file1") gives you what you want. If you wanted to compare old and new data for people in both lists, you could do:

cmpcol -i -d ',' -lb oldlist newlist
(produce intersection, list full lines of both files).