web-dev-qa-db-fra.com

Utilisation de modificateurs de regex compatible Perl (PCRE) dans grep

Selon grep --help et man grep, nous pouvons utiliser l'option -P afin d'interpréter le motif en tant qu'expression régulière Perl (PCRE, pour être précis), au lieu de la valeur par défaut expressions régulières de base POSIX (BRE).

En langage Perl, divers modificateurs peuvent être ajoutés à l'expression, afin d'ajuster l'interprétation du motif (dans la syntaxe de /pattern/modifiers).

Donc, comment quelqu'un peut-il ajouter des modificateurs à l'expression régulière Perl de grep? J'ai essayé des variantes comme grep -P "/^got.it$/ms" [FILE] mais les résultats de la recherche étaient erronés.

Cependant, à propos de l'interprétation PCRE, le manuel souligne que:

Ceci est hautement expérimental et grep -P peut avertir des fonctionnalités non implémentées.

Est-il possible que l'outil grep ne supporte pas du tout les modificateurs ?

En passant, j’ai remarqué qu’il est possible d’effectuer une correspondance de modèle sans tenir compte de la casse en utilisant l’option -i, qui est un exemple de modificateur.

20
Reflection

Pour les modificateurs imsxadlup vous pouvez utiliser le (?X) comme décrit dans Extended Patterns :

$ echo FOO | grep -P '(?i)foo'
FOO
17
Florian Diesch