O Bash não suporta um método para você fazer isso no momento. Você ficou com as seguintes opções:
- Use Perl
- Use
grep [-P|--perl-regexp]
- Use a funcionalidade Bash para codificá-lo
Eu acho que eu iria com # 2 e tentaria usar grep
para conseguir o que eu quero funcionalmente. Para referências anteriores, você pode fazer o seguinte com 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