Usando modificadores de Regex compatível com Perl (PCRE) no grep

15

De acordo com grep --help e man grep , podemos usar a opção -P para interpretar o padrão como uma expressão regular Perl (PCRE, para ser preciso), em vez do padrão expressões regulares básicas POSIX (BRE).

Na linguagem Perl, vários Modificadores podem ser adicionados à expressão, em para ajustar a interpretação do padrão (na sintaxe de /pattern/modifiers ).

Então, como alguém pode adicionar modificadores à expressão regular Perl do grep? Eu tentei algumas variações como grep -P "/^got.it$/ms" [FILE] , mas os resultados da pesquisa estavam errados.

No entanto, sobre a interpretação PCRE, o manual aponta que:

  

Isto é altamente experimental e grep -P pode alertar sobre recursos não implementados.

É possível que a ferramenta grep não suporte modificadores ?

A propósito, notei que é possível realizar uma correspondência de padrões sem distinção entre maiúsculas e minúsculas usando a opção -i , que é um exemplo de um modificador.

    
por Reflection 25.01.2014 / 15:07

1 resposta

13

Para os modificadores imsxadlup , você pode usar o (?X) conforme descrito em Padrões estendidos :

$ echo FOO | grep -P '(?i)foo'
FOO
    
por Florian Diesch 25.01.2014 / 15:39

Tags