Grep Регулярное выражение с буквенно-цифровой строкой - PullRequest
0 голосов
/ 28 октября 2019

Не уверен, почему это не работает с Grep, хотя я знаю, что регулярное выражение:

grep "[a-z0-9-]{36}" myFile.txt

Данные внутри файла выглядят так:

ERROR for ID:e1b9bb05-323a-4128-901b-fee19beca3ba
ERROR for ID:e3e110ac-6dd1-4d5b-8320-b4281e85d76d
ERROR for ID:083753b9-479c-4307-bc7b-b48405fbf346

Iхотите сопоставить весь идентификатор ошибки, включая дефисы.

1 Ответ

2 голосов
/ 28 октября 2019

Вам нужно экранировать { и } или использовать расширенное регулярное выражение, включив флаг -E.

grep -o  "[a-z0-9-]\{36\}" 
e1b9bb05-323a-4128-901b-fee19beca3ba
e3e110ac-6dd1-4d5b-8320-b4281e85d76d
083753b9-479c-4307-bc7b-b48405fbf346

или

grep -Eo  "[a-z0-9-]{36}"
e1b9bb05-323a-4128-901b-fee19beca3ba
e3e110ac-6dd1-4d5b-8320-b4281e85d76d
083753b9-479c-4307-bc7b-b48405fbf346
...