in reply to Match multiple lines
How do I best get it to take everything following the header:
Or if you don't mind loading the entire input file into memory:<$fh_in>; # Skip header print $fh_out $_ while <$fh_in>;
<$fh_in>; # Skip header { local $/; print { $fh_out } <$fh_in>; }
By the way, '.' indicates the current directory, so there's no need to load Cwd.
By the way, $_ != /\.ktf$/ makes no sense. You probably meant $_ !~ /\.ktf$/ (long for !/\.ktf$/). But isn't that inverted? I think you want /\.ktf$/ (short for $_ =~ /\.ktf$/).
So you get:
use strict; use warnings; use File::Find qw( find ) open(my $fh_out, '>', 'D:\\mergedfile.ktf') or die("Can't create output file \"D:\\mergedfile.ktf\": $!\n"); my $first = 1; find(sub { return if !/\.ktf\z/; print("$File::Find::name\n"); open(my $fh_in, '<', $File::Find::name) or die("Can't open file \"$File::Find::name\": $!\n"); <$fh_in> if !$first; $first = 0; print $fh_out $_ while <$fh_in>; }, '.');
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Match multiple lines
by repellent (Priest) on Sep 19, 2009 at 16:03 UTC | |
by WeeDie (Novice) on Sep 19, 2009 at 16:27 UTC | |
by repellent (Priest) on Sep 19, 2009 at 18:01 UTC | |
by ikegami (Patriarch) on Sep 20, 2009 at 16:45 UTC | |
|
Re^2: Match multiple lines
by WeeDie (Novice) on Sep 19, 2009 at 15:48 UTC | |
by WeeDie (Novice) on Sep 19, 2009 at 16:09 UTC |