# from a2p...
#
# input file is: username:(gname:gnum)+

$[ = 1;                 # set array base to 1
$FS = ':';              # field separator from -F switch
$, = ' ';               # set output field separator
$\ = "\n";              # set output record separator

while (<>) {
    chop;       # strip record separator
    @Fld = split(/[:\n]/, $_, 9999);

    for ($grpname = 2; $grpname < $#Fld; $grpname += 2) {
        $grpnum = $grpname + 1;
        if ($groups{$Fld[$grpname]} eq '') {
            $groups{$Fld[$grpname]} = sprintf('%s:*:%s:%s', $Fld[$grpname],
              $Fld[$grpnum], $Fld[1]);
        }
        else {
            $groups{$Fld[$grpname]} = sprintf('%s,%s',
              $groups{$Fld[$grpname]}, $Fld[1]);
        }
    }
}

foreach $i (keys %groups) {
    print $groups{$i};
}
