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