Forcing Bash to use Perl RegEx Engine
Bash doesn't support a method for you to do this at this time. You're left with the following options:
- Use Perl
- Use
grep [-P|--perl-regexp]
- Use Bash functionality to code it
I think I would go with #2 and try and use grep
to get what I want functionally. For back referencing you can do the following with grep
:
$ echo 'BEGIN `helloworld` END' | grep -oP '(?<=BEGIN `).*(?=` END)'
helloworld
-o, --only-matching show only the part of a line matching PATTERN
-P, --perl-regexp PATTERN is a Perl regular expression
(?=pattern)
is a positive look-ahead assertion
(?!pattern)
is a negative look-ahead assertion
(?<=pattern)
is a positive look-behind assertion
(?<!pattern)
is a negative look-behind assertion
References
- How To Use Backreference in Bash