Использование grep для печати всех соответствующих строк, не разделенных пробелом

Я просматриваю текстовый файл электронной почты и пытаюсь получить список из определенного домена.

Я бегу:

grep -oh "\w*domain.com\w*" file.txt 

Это находит строки, но только печатает это слово, что означает, что если я запустил команду в этом списке:

 foo abc@notit.com bar baz bcd@domain.com abc xyz cde@adomain.com defg klmn def@notit.com ijk yes efg@efg.domain.com no 

Он вернется

 domain.com adomain.com domain.com 

Я хочу, чтобы он вернул весь адрес электронной почты с помощью «domain.com» в нем:

 bcd@domain.com cde@adomain.com efg@efg.domain.com 

Возможно ли это с помощью grep ? Мне нужно сказать, чтобы он не обрабатывал периоды или знаки @ как разрывы слов.

EDIT: В той же строке есть куча нерелевантных данных, которые я бы предпочел не показывать.

  • Как подсчитать количество слов и напечатать строки, соответствующие точному шаблону?
  • Подавлять конкретные экземпляры ключа поиска в grep
  • Извлечь третью группу текста из разделителей диапазонов
  • grep фильтрует все линии плюс один перед каждым нажатием
  • Awk / grep / sed получает разделенный запятыми список чисел из строк текста
  • Как grep для значения после знака =
  • Строка поиска с использованием grep
  • Найти строку между пробелами
  • 2 Solutions collect form web for “Использование grep для печати всех соответствующих строк, не разделенных пробелом”

    Ты ищешь

     grep -ho '\S*domain.com\S*' file 

    где \S соответствует не-пробельным символам, поэтому в этом случае grep будет соответствовать всем между пробелами со строкой «domain.com» в нем.

    Альтернативно, если вы хотите явно разрешить только @ и . в строке (кроме буквенно-цифровых символов):

     grep -ho '[[:alnum:].@]*domain.com[[:alnum:].]' file 

    Таким образом grep будет извлекать user@domain.com из строки [user@domain.com] .

    POSIXly:

     <file tr -cs '[[:alnum:].@-_]' '[\n*]' | grep domain\.com bcd@domain.com cde@adomain.com efg@efg.domain.com 
    Linux и Unix - лучшая ОС в мире.