Вы должны использовать grep с регулярным выражением perl (опция -P
), которое поддерживает такие предположения, как (?: )
:). Также не следует избегать фигурных скобок.
Пытаться:
grep -P '\w*(?:\.\w*)*@\w*(?:\.\w*)*\w{2,5}'
Поскольку выражения perl являются экспериментальной функцией GNU grep, вы можете изменить (?: )
( )
и пользовательские расширенные выражения ( -E
):
grep -E '\w*(\.\w*)*@\w*(\.\w*)*\w{2,5}'
Некоторые реализации расширенных выражений не поддерживают фигурные скобки {
и }
. Для переносимости вы можете использовать основные регулярные выражения.
Использовать базовые регулярные выражения escape (
и )
и оставлять также {
и }
экранированными.
grep '\w*\(\.\w*\)*@\w*\(\.\w*\)*\w\{2,5\}'