Невозможно сопоставить группы символов с помощью grep - PullRequest
0 голосов
/ 13 мая 2019

Я хотел бы соответствовать регулярному выражению \[[A-Z\s]*\].Кажется, что grep не может интерпретировать [A-Z\s] как any upper-case letter or space.\[.*\] работает, но не достаточно конкретно для меня.

Беглый взгляд на grep --help показывает, что существует несколько вариантов регулярных выражений.

  -E, --extended-regexp     PATTERN is an extended regular expression (ERE)
  -F, --fixed-strings       PATTERN is a set of newline-separated strings
  -G, --basic-regexp        PATTERN is a basic regular expression (BRE)
  -P, --perl-regexp         PATTERN is a Perl regular expression
  -e, --regexp=PATTERN      use PATTERN for matching

Мне кажется, что он не работает ни с одним из этих параметров.Что я делаю неправильно?

Справочная информация. Я хотел бы просмотреть информацию о регистрации.Регистратор иногда выводит информацию с [INFO] или [WARN ] или подобным.

1 Ответ

1 голос
/ 13 мая 2019

Perl-совместимые регулярные выражения ...

grep -P "\[[A-Z\s]*\]"

... работают на меня.Входные данные:

[INFO]
[WARN ]
[TEST2]

Выходные данные:

[INFO]
[WARN ]

Если у вас нет PCRE, доступного в вашей системе,

grep "\[[A-Z[:space:]]*\]"

будет работать из встроенного в grep basicсинтаксис.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...