É 'grep -P' (Perl / Python regex) portátil na maioria das distribuições linux

0

Eu prefiro expressões regulares (Perl / Python Compatible Regular Expressions).

man grep :

...., but only work if pcre is available in the system

Isso é suportado nas distribuições de Linux mais comuns?

Eu não ligo para o freebsd, solarix, busybox, ...

    
por guettli 05.03.2015 / 08:03

2 respostas

2
O

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.

    
por 06.03.2015 / 01:12
0

Tanto quanto me lembro, eu vi pcre em muitas distribuições Linux como CentOS, Ubuntu, RedHat, Debian e outras distribuições baseadas nelas. e acho que isso não lhe causará nenhum problema. também a fonte está disponível:

link

    
por 05.03.2015 / 11:10