svsingh has asked for the wisdom of the Perl Monks concerning the following question:
I tried a few one-liners, but none of them worked. Since I was just trying to find something really quickly, I decided to punt and just write a script to do what I wanted.
Now I'm trying to learn more about one-liners (I don't have any experience with them) just so I can handle this situation a bit better next time it comes up.
I should also note that I'm doing this from a Windows command prompt.
Here are some of the one-liners that I tried (in a for loop, single file example shown here):
- perl -pe "m/M[A-Z]{3} /" 1-01.txt
Outputs the source file exactly. - perl -pe "if (m/(M[A-Z]{3}) /) { print $1; }" 1-01.txt
Outputs the source file exactly.
And finally, here's the subroutine that actally did what I wanted:
my @files = <*.txt>; undef $/; foreach (@files) { open ( FH, $_ ); my $txt = <FH>; close ( FH ); while ( $txt =~ m/(M[A-Z]{3}) /gs ) { print " $1\n"; } }
Is there a way to do something like this as a one-liner? If so, then can I incorporate the glob into the one-liner? Thanks for your help.
janitored by ybiC: Prepend tile wit "One-liner" for searchability
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: One-liner for Matching a Regex in a Directory of Files
by Paladin (Vicar) on Jan 10, 2004 at 20:18 UTC | |
Re: One-liner for Matching a Regex in a Directory of Files
by allolex (Curate) on Jan 10, 2004 at 20:56 UTC | |
by svsingh (Priest) on Jan 11, 2004 at 02:15 UTC | |
Re: One-liner for Matching a Regex in a Directory of Files
by davido (Cardinal) on Jan 11, 2004 at 06:00 UTC |