Você deve usar o grep com expressão regular perl ( -P
option) que suporta asserções lookahead como (?: )
. Também chaves não devem ser escapadas.
Tente:
grep -P '\w*(?:\.\w*)*@\w*(?:\.\w*)*\w{2,5}'
Como as expressões perl são um recurso experimental no GNU grep, você pode querer alterar (?: )
para ( )
e expressões estendidas do usuário ( -E
):
grep -E '\w*(\.\w*)*@\w*(\.\w*)*\w{2,5}'
Algumas das implementações de expressões estendidas não suportam chaves {
e }
. Para portabilidade, você pode usar expressões regulares básicas.
Para usar expressões regulares básicas, escape de (
e )
e deixe também {
e }
escaped.
grep '\w*\(\.\w*\)*@\w*\(\.\w*\)*\w\{2,5\}'