PCRE está instalado em praticamente todos os sistemas Linux servidor e desktop , mas você não pode necessariamente esperar isso em sistemas leves ou sistemas embarcados (telefones, roteadores, TVs e outras IoT ), como muitas vezes eles têm versões muito aparadas do userland padrão (basicamente, qualquer coisa com uma base de busybox é tudo mas garantido a falta de PCRE).
O Debian tem um recurso Concurso de popularidade que mede as métricas de instalação em vários pacotes. grep
(25º mais comum, 176k instalações) depende ( não opcionalmente) em libpcre3
(94º mais comum, 174k instala). Eu não posso explicar a discrepância, mas eu também não me preocuparia com isso.
Deve ser seguro assumir que os desktops e servidores modernos que executam distribuições completas do Linux terão versões de grep
compiladas com suporte a PCRE.
Ainda assim, se você quiser a PCRE com uma garantia melhor de portabilidade, não confie em grep -P
ou pcregrep
(9363ª em instalações 1k) ou ack
(21728ª em 180 instalações), use perl
( 88 em 175k instala) diretamente:
perl -ne 'print if /regexp/'
Note que existem servidores que intencionalmente não possuem perl, python e php para "fins de segurança", ou seja, que muitos scripts maliciosos (por exemplo, rootkits ) dependem deles e, portanto, não podem ser executados. Isso é muito raro (e meio bobo, já que existem muitos shell scripts poderosos do POSIX).
Nota 2: Perl é lento (como é python). O LibPCRE é muito mais rápido, mas quanto mais simples o seu regexps, melhor será o desempenho. Se possível, use grep
sozinho (BRE, regexps básicos) ou tente grep -E
(ERE, regexps estendidos) em vez de mergulhar mais fundo na terra PCRE.