http://www.perlmonks.org?node_id=320376


in reply to One-liner for Matching a Regex in a Directory of Files

a four letter word starting with M

In that case, you should also be using the carat to tell your regex that the letter "M" is found just after the beginning of the filename.

m/^M[A-Z]{3}/

So you get:

perl -le'foreach ( <*.txt> ) { print if /^M[A-Z]{3}/ }'

--
Allolex

Replies are listed 'Best First'.
Re: (2) One-liner for Matching a Regex in a Directory of Files
by svsingh (Priest) on Jan 11, 2004 at 02:15 UTC
    Sorry, I didn't mean to imply that that M was at the beginning of the file. Each text file is a separate essay and the acronym was just a word in the body of the file.

    I combined ideas from both tips to come up with the following (semi-Perl) solution. Thanks for your help Paladin and allolex.

    for %a in (*.txt) do @perl -ne "if (m/ (M[A-Z]{3}) /) { print qq($1\n); }" %a