waj4356:server1:server2:X:server4:server5:X:X:server8:server9 zaw8732:X:server2:server3:server4:X:server6:X:server8:X cvf6609:X:X:X:X:server5:server6:server7:X:X #### waj4356:server1:server2:server4:server5:server8:server9 zaw8732:server2:server3:server4:server6:server8 cvf6609:server5:server6:server7 #### #!/usr/bin/perl -w use strict; my %USERS; foreach my $file () { open(PASSWD,$file); my $strip=$file; #strips passwd. from passwd.server $strip =~ s/passwds\.//; while() { my($login,$gcos) = (split(':',$_))[0,4]; if(exists $USERS{$login}) { push(@{$USERS{$login}},$strip); } else { $USERS{$login} = [$strip]; } } close(PASSWD); } open(NEWFILE,">file3") || print "Can't open file3: $!\n"; foreach my $login (sort keys %USERS) { print NEWFILE "$login:".shift(@{$USERS{$login}}).":"; print NEWFILE join(':',@{$USERS{$login}})."\n"; } close(NEWFILE); print "the Active Servers listing is done\n";