Использование модификаторов Perl-совместимого регулярного выражения (PCRE) в grep

20

В соответствии с grep --helpи man grep, мы можем использовать эту -Pопцию, чтобы интерпретировать шаблон как регулярное выражение Perl (если быть точным, PCRE) вместо базовых регулярных выражений POSIX по умолчанию (BRE).

На языке Perl различные модификаторы могут быть добавлены к выражению, чтобы настроить интерпретацию шаблона (в синтаксисе /pattern/modifiers).

Итак, как можно добавить модификаторы в регулярное выражение Perl grep? Я пробовал некоторые варианты, grep -P "/^got.it$/ms" [FILE]но результаты поиска были неправильными.

Тем не менее, в отношении интерпретации PCRE, руководство указывает, что:

Это очень экспериментально, и grep -P может предупредить о невыполненных функциях.

Возможно ли, что инструмент grep вообще не поддерживает модификаторы ?

Кстати, я заметил, что можно сопоставлять шаблоны без учета регистра, используя -iопцию, которая является примером модификатора.

отражение
источник
Кросс-
пост

Ответы:

17

Для модификаторов imsxadlupвы можете использовать (?X)for, как описано в Extended Patterns :

$ echo FOO | grep -P '(?i)foo'
FOO
Флориан Диш
источник