Obtendo endereços de e-mail de um arquivo usando grep com o Regex não está funcionando?

1

Então eu tenho um arquivo que contém e-mails como este:

[email protected]:theirUsername

[email protected]:theirUsername

...

Eu quero extrair e-mails que começam com PA e, em seguida, seguir com 6 caracteres aleatórios, depois @ gmail.com e depois disso: theirUsername, que não é importante para mim o nome de usuário.

eu tentei usar isso:

egrep "^PA[a-zA-Z0-9-.+_]{6}@gmail.com:[a-zA-Z0-9-.+_]+"

eu tentei isso com o grep e ainda não funcionou Mas não está funcionando? tem sido um longo tempo desde que eu usei regex com egrep e ler o manual também não ajudou, o que estou fazendo errado aqui? qual é a maneira correta de digitar?

    
por Richard Jones 03.11.2018 / 13:07

1 resposta

2

Se você realmente quer apenas "6 caracteres aleatórios" e não se importa com o que está depois do : , você pode simplificar facilmente. Não tente corresponder ao que está depois do : , e use apenas . para os caracteres após o PA

egrep '^PA.{6}@gmail.com:'

por exemplo,

% cat f
hello
[email protected]:jgkfd
[email protected]
[email protected]:

% egrep '^PA.{6}@gmail.com:' f
[email protected]:jgkfd
    
por 03.11.2018 / 13:39