Não, não funcionará porque ()
é especial para a maioria dos shells e você receberá um erro de sintaxe:
$ grep (ab)* foo
bash: syntax error near unexpected token '('
Cite suas expressões.
Agora, grep
usa Basic Regular Expressions (BRE) por padrão. Para agrupar parte de uma expressão no BRE, você precisa usar \(...\)
:
$ echo xababx | grep -o '\(ab\)*'
abab
Ou use expressões regulares estendidas (ERE) ou expressões regulares compatíveis com Perl (PCRE), em que (...)
é suficiente:
$ echo abab | grep -Eo '(ab)*'
abab
$ echo abab | grep -Po '(ab)*'
abab
Consulte o grep
manual para BRE vs ERE .