From the original post I gathered that we are comparing two different account databases. Most corporate user account names that I have come across have been 10 characters or less. The files mentioned most likely could be parsed and only two pieces of data from each line would need to be stored in memory for the compare. So I do not see the file sizes as an issue. 20,000 accounts can easily be stored in memory.
He also mention group membership which clouds the issue of exactly how the logic would flow. More detail in this area is needed in my opinion. Adding group memberships may require a re-reading of the file or some additional memory data structure.