Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I generally use the following command to match patterns

find . -maxdepth 1 -regextype posix-egrep -regex '.*/{pattern}'

However when I attempt to use a lookahead for example, no results are returned although it works when I use sites such as gSkinner

find . -maxdepth 1 -regextype posix-egrep -regex '.*/Linux(?=W).*'

What am I doing wrong?

share|improve this question
up vote 6 down vote accepted

find (both the GNU and BSD variants) do not support lookahead/lookbehind. GNU grep only supports the POSIX basic and extended regular expression variants as well as a couple of others.

Lookahead and lookbehind are Perl-style regular expression elements, so you'd have to use Perl directly, or GNU grep with the -P option, which then interprets Perl regex.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .