Como extrair os e-mails de um arquivo texto qualquer

Como extrair os e-mails de um arquivo texto qualquer, omitindo o resto.

Podemos utilizar o comando grep. Veja abaixo.

Digitar o comando:

grep -Eio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b' arquivo.txt

onde arquivo.txt é o arquivo que você deseja extrair os e-mails.
Pronto!

Veja uma sucinta explicação do comando, com uma breve explicação em português (adicionada por mim) do texto selecionado a partir do comando man grep. Digite este comando para maiores informações ou personalizações que sejam necessárias.

-E, - -extended-regexp - extende o comando grep
Interpret PATTERN as an extended regular expression (ERE, see below). (-E is specified by POSIX.)

-i, - -ignore-case - ignora maiúsculas e minusculas
Ignore case distinctions in both the PATTERN and the input files. (-i is specified by POSIX.)

-o, - -only-matching - este comando é fantástico... mostra só o que você quer, escondendo  resto
Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.

\b
The symbol \b matches the empty string at the edge of a word

{n,m} - no caso, significa que de A-Z, pode aparecer no mínimo 2 vezes, no máximo 4 vezes
The preceding item is matched at least n times, but not more than m times.

O resto é intervalo de caracteres.

Fonte: http://stackoverflow.com/questions/4435207/how-do-i-get-sed-to-delete-everything-else-but-email-address

Comando executado utilizando o Kubuntu 14.04.

Comentários

Postagens mais visitadas deste blog

Lava-louças Brastemp BLE20 - RESOLVIDO - Piscando luzes Iniciar e enxaguar/Erro ao jogar água fora

Microsoft Print to PDF não aparece na lista de impressoras nos programas