Gentlemen, I still have no luck after trying your suggestions. I could use some more ideas if you guys dont mind. Please send them my way, I ll appreciate it.
A On Thu, Sep 18, 2008 at 3:03 AM, Dr.Ruud <[EMAIL PROTECTED]<[EMAIL PROTECTED]> > wrote: > "John W. Krahn" schreef: > > > #!/usr/bin/perl > > use warnings; > > use strict; > > > > open SERVERS, '<', 'sample.txt' or die "Cannot open 'sample.txt' $!"; > > > > # set the Input Record Separator > > $/ = "--------------------------\n"; > > > > while ( <SERVERS> ) { > > my $server_name = /^Server Name:\s+(.+)/m; > > my $manufac = /^Manufacturer:\s+(.+)/m; > > my $model = /^Model:\s+(.+)/m; > > my $num_procs = /^Number Of Processors (Includes > > MultiThread):\s+(\d+)/m; > > my $serial_num = /^Serial Number:\s+(.+)/m; > > my $mem = /^Mem Total:\s+(.+)/m; > > my @disks = /^DeviceID:\s+([A-Z]:)/mg; > > my $spack = /^Service Pack:\s+(.+)/m; > > > > print join( ':', $server_name, $manufac, $model, $num_procs, > > $serial_num, $mem, @disks, $spack ), "\n"; > > } > > > > __END__ > > Nice approach, but it needs a s/(my \$\S+)/($1)/g. > > > my @title = do { no warnings 'qw'; > qw/Server_Name Manufacture Model #_of_Procs Serial# Total_Mem Disk1 > Disk2 Disk3 Service_Pack/; > }; > print join("\t", @title), "\n"; > > # set the Input Record Separator > $/ = "--------------------------\n"; > > while ( <SERVERS> ) { > my ($server_name) = /^Server Name:\s+(.+)/m; > my ($manufac ) = /^Manufacturer:\s+(.+)/m; > my ($model ) = /^Model:\s+(.+)/m; > my ($num_procs ) = /^Number Of Processors \(Includes > MultiThread\):\s+(\d+)/m; > my ($serial_num ) = /^Serial Number:\s+(.+)/m; > my ($mem ) = /^Mem Total:\s+(.+)/m; > my @disks = /^DeviceID:\s+([A-Z]:)/mg; > my ($spack ) = /^Service Pack:\s+(.+)/m; > > push @disks, "" while @disks < 3; > print join( "\t", $server_name, $manufac, $model, $num_procs, > $serial_num, $mem, @disks, $spack ), "\n"; > } > > > > A next step could be to set up > > my $qr_a = qr/(.+)/; > my $qr_d = qr/([0-9]+)/; > > my %fields = ( > "Server Name" => $qr_a, > "Manufacturer" => $qr_a, > "Model" => $qr_a, > "Number Of Processors (Includes MultiThread)" => $qr_d; > "Serial Number" => $qr_a, > "Mem Total" => $qr_a, > "@DeviceID" => qr/([A-Z]:)/; > "Service Pack" => $qr_a, > ); > > and code a mini parser. Or use a parser module. > > -- > Affijn, Ruud > > "Gewoon is een tijger." > > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > http://learn.perl.org/ > > >