O script de shell a seguir (estou usando o ksh) criará um terceiro arquivo para sua solicitação.
while read U REST
do
S=" " # initialized with a tabulation
G=""
grep -E '[ ,]'"$U"'(,|$)' file2.txt | while read X GROUP USRLIST
do
G="$G$S$GROUP"
S=","
done
echo "$U $REST$G" # tab between $U and $REST
done < file1.txt > file3.txt
com file1.txt como
644 u11496 Real name1
640 u1309 Real name2
641 u3007 Real name3
642 u3030 Real name4
643 u3112 Real name5
54 u0365 Real name6
55 u0613 Real name7
56 u1065 Real name8
57 u1550 Real name9
14 u14 Jules Ceasar
arquivo2.txt como
2 group1 14,730,748,733,746,761,757,766,735,760,747,738,752,737,758,755,734,754,764,334,335,336,337,41,338,339,39,340
6 group2 14
14 group6 667,683,641
15 group3 14,667,683,713,730,707,748,733,746,761,680,694,757,766,717,735,760,747,704,738,752,737,715,688,681,700,692,758,755,714,734
você obterá o arquivo3.txt como
644 u11496 Real name1
640 u1309 Real name2
641 u3007 Real name3 group6
642 u3030 Real name4
643 u3112 Real name5
54 u0365 Real name6
55 u0613 Real name7
56 u1065 Real name8
57 u1550 Real name9
14 u14 Jules Ceasar group1,group2,group3