Thanks all who assisted, especially Bill for the rewriting part and others for 
the regex syntax.
The script rewrites the files but nothing is replaced. When I escape the space 
as \s+ or \s it signals an error of unrecognized escape \s.

Could it be the regex are written or is it impossible to do the required 
substitution?
Help appreciated.
Zilore


use strict;
use warnings;
use POSIX;
use File::Path;
use File::Copy;

my $debug=1;

my $Grib_dir = 'grib_files';

opendir DIR, $Grib_dir or die "opendir failed on $Grib_dir: $! ($^E)";
while (my $file = readdir DIR) {

    next if -d $file;

    # Extra filtering, to copy only grib files ending in H
    next unless $file =~ /H$/;

    print "Doing $file\n" if $debug;
    my @lines = ();
    open IN, "+<$Grib_dir/$file" or die "open '$file': $! ($^E)";
    binmode IN;
    while (<IN>) {

        s/nxny 5041 \d{4}/nxny 5041/g;
        s/nx \d{4}/nx 71/g;
        s/ny 1/ny 71/g;                                
        s/\(\d{4} x 1\)/\(71 x 71\)/g;

        push @lines, $_;
    }
    seek IN, SEEK_SET, 0;        # rewind file
    print IN @lines;
    close IN;
}
closedir DIR;

__END__



      
_______________________________________________
ActivePerl mailing list
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to