Использование 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: В той же строке есть куча нерелевантных данных, которые я бы предпочел не показывать.

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 
  • Понимание grep и труб в linux
  • Необходимые команды для grep Неизвестное количество строк перед поиском строки поиска в файлах
  • Поиск в архивах для определенных файлов и паттернов
  • grep caret, похоже, не имеет эффекта
  • Grep Pattern и следующее слово
  • Как расширить псевдонимы bash
  • Поиск Grep, возвращающий другую строку
  • Почему grep игнорирует двоичные файлы по умолчанию?
  • Как я могу grep определенный текст и отображать его строку и строку после
  • Как найти пробел в тексте. используя grep?
  • grep для нескольких строк в файлах, а затем список файлов в порядке размера
  • Печать содержимого файла с помощью grep
  • Interesting Posts

    Я отключил Compiz, и строка заголовка в каждом окне отсутствует.

    Запуск двоичных файлов X86 на armv7

    Почему не ставится elinks в фоновом режиме, а затем возобновляется с `fg` работать надежно?

    Как создать часть куска с добавленной новой линией в EOF?

    Как переключить почтовые ящики в mutt?

    Правильная настройка Red Hat Daemon Umask

    Как просмотреть содержимое моего жесткого диска другим пользователем, отличным от root. Я все время отказываюсь от разрешения

    Это правильный способ проверить, имеет ли символическая ссылка / proc / directory

    Can / mnt / hgfs / 'shared folder' используется в качестве корня apache?

    Вопрос форума Archlinux, похоже, не подлежит ответственности

    Построение linux-menuconfig приводит к: «*** Ошибка при обновлении конфигурации».

    Поиск символических ссылок указывает на одну и ту же цель

    Не удалось загрузить новую установку FreeBSD 8.2 на Intel SS4200-EHW

    Twinview: 2 монитора с разностными разрешениями с NVIDIA

    Возобновить перенос одного файла с помощью rsync

    Linux и Unix - лучшая ОС в мире.