I am comparing the passwd file to a file of numbers. The numbers match
GECOS info in the passwd file. I want the lines in the passwd file not
matching lines in the $students file printed to another file. I used
examples of others code to come up with the following. It works OK. My
problem is that the data in /etc/passwd is quite variable and so sometimes
I have nothing in $two, and sometimes it is not what I want (i.e. the line
with "Jr."). Can someone educate me on a way to split conditionally, as in
split on the character before a number ? 

#!/usr/bin/perl -w
use strict;

my ($one, $two, $three, $four, $five, $six, $line, $pair);
my $dir = "/usr/local/tools";
my $pwlist = "/etc/passwd";
my $students = "$dir/spr2007.txt";

my %sids;

open my($numbers), $students or die "can't read $students: $!";
open my($pfile), $pwlist or die "can't read $pwlist: $!";

   while (<$numbers>) {
     chomp;
     $sids{$_} = 1;
   }
   close $numbers;

open (RESULTS, "+>$dir/students_to_modify.txt");
my @line = <$pfile>;

        foreach $pair (@line) {
          ($one, $two, $three, $four, $five, $six) = split(/:/, $pair);
          ($one, $two, $three) = split(/,/, $five);
          $two =~ s/^\s+//;
          printf RESULTS ("$two, $one, $three\n") unless $sids{$two};
                                   
}

close $pfile;
close RESULTS;

Here is an example of $students :

123
1234567
12334
300901

Here is an example of $pwlist (other than the usual entires):

nhl:*:15739:15739: Norm E Hill, Jr. , 123404 , FG-04 :/usr/nhl:/bin/nologin
rmaya:*:15742:15742: Ruika Manya , 24540 , QW-27 :/usr/rmaya:/bin/nologin
lpea:*:15755:15755:Luci Pea, NOID, Art, 1985:/usr/lpea:/bin/nologin
jpos:*:15758:15758:Jose Pos,12334,AR-34:/usr/jpos:/bin/nologin
bmier:*:15760:15760:Bennet Mier, Jr.,300901,AA-18:/usr/bmier:/bin/nologin
cotght:*:15762:15762:Tami Cotght,123333,ZZ-08:/usr/cotght:/bin/nologin
gcale:*:15763:15763:Gin Calebary,2448,BB-157:/usr/gcale:/bin/nologin
studc:*:15764:15764:Student Council,Student
Affairs,Special:/usr/studc:/bin/nologin
blackc:*:15768:15768:Black Clock,Bob Foser,Special:/usr/blackc:/bin/nologin
jiee:*:15791:15791:JiYeo Lee:/usr/jiee:/bin/nologin
mfa04:*:15794:15794:Karen Ason:/usr/mfa04:/bin/nologin


-- 

Karyn Williams
Network Services Manager
California Institute of the Arts
[EMAIL PROTECTED]
http://www.calarts.edu/network

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to