Você está procurando
grep -ho '\S*domain.com\S*' file
em que \S
corresponde a caracteres que não são espaços em branco, portanto, neste caso, grep
corresponderá a tudo entre espaços em branco com a string "domain.com".
Como alternativa, se você quiser permitir explicitamente apenas @
e .
na sequência (com exceção de caracteres alfanuméricos, obviamente):
grep -ho '[[:alnum:].@]*domain.com[[:alnum:].]' file
Dessa forma, grep
extrairá [email protected]
da string [[email protected]]
.