Você precisa de grep
com suporte a PCRE (Perl Compatible Regular Expression). por exemplo. O% GNUgrep
tem isso - pode ser aproveitado com a opção -P
. Existe também um programa autônomo chamado pcregrep
que pode ser instalado em muitos sistemas com empacotamento regular.
Observe que -E
ativa o ERE (Expressão regular estendida) que não tem suporte a correspondência não-voraz com o token ?
.
Portanto, com o GNU grep
, você pode fazer, por exemplo:
grep -Po '^.*?foo' file
para combinar (e extrair) até o primeiro foo
do início.