Согласно 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
опция, которая является примером модификатора.
Для модификаторов imsxadlup
вы можете использовать (?X)
, как описано в Расширенные паттерны :
$ echo FOO | grep -P '(?i)foo'
FOO