"(this file doesn't have tags, so they will need to be added, but I can
rerun that join for you)"

That's kind of what I meant about having a concise problem statement.
What do tags have to do with joining?

    631    1459   12907 complete5.partial.nomatch-stingy.merge
    1031   12218  180425 complete5.stingy-partial.merge
/afs/sipb/user/sly/Research/FTTH/NANPA/remainder-for-matching

[portnoy!jhawk] /afs/sipb/user/sly/Research/FTTH/NANPA> head remainder-for-matching | perl -ne 'use Text::Soundex; chop; @f=split(/\t/); $f[1] =~ s/ //g; @p=split(/,/,$f[1]); ; print $_ . "\t$p[1] " . soundex($p[0]) . "\n";' | cat -vet | less

complete5.partial.nomatch-stingy.merge

 sort -t\     +1 nomatch-stingy.soundex > nomatch-stingy.ssort
sort -t\     +2 remainder.soundex > remainder.ssort

