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

Согласно 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 опция, которая является примером модификатора.

20
задан 07.05.2020, 02:28

1 ответ

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

$ echo FOO | grep -P '(?i)foo'
FOO
17
ответ дан 07.05.2020, 02:29

Теги

Похожие вопросы