Normally, this isn't a code writing service, but since what you're asking about is fairly basic, I'll give you some skeleton code for going through a set of files and picking lines out of those files. Please take the time to read perlintro and perlrequick (also perlretut), they aren't too long or complicated, and will explain almost everything in the following code. I used glob instead of readdir because it's easier to use. Feel free to use and adapt this code for your purposes - if you run into trouble or more questions, see the Basic debugging checklist, and if you have trouble and would like to ask questions here, please see the guidelines in How do I post a question effectively? and SSCCE.
#!/usr/bin/env perl use warnings; use strict; my @files = glob '/path/*.log'; my $out_filename = 'output.txt'; open my $out_fh, '>', $out_filename or die "open $out_filename: $!"; for my $filename (@files) { next if $filename =~ /regex to exclude undesired filenames/; open my $fh, '<', $filename or die "open $filename: $!"; while (<$fh>) { next unless /regex to match desired lines/; print {$out_fh} $_; } close $fh; } close $out_fh;
Note that the code above is doing roughly the same as:
$ ls /path/*.log | grep -v filename_exclude_pat | xargs grep -h line_include_pat >output.txt
In reply to Re: Need help copying "logs" to another file.
by haukex
in thread Need help copying "logs" to another file.
by REsaY
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |