Don't understand german? Read or subscribe to my english-only feed.

pcregrep – a grep with Perl-compatible regular expressions.

grep bietet eine Option ‘-P’ an:

mika@grml ~ % grep --help | grep -- -P
  -P, --perl-regexp         PATTERN is a Perl regular expression

PCRE ist bekanntlich mächtiger als die Standard-POSIX-Regexps. Bei Debian funktioniert diese Option allerdings nicht, denn ‘DEB_CONFIGURE_EXTRA_FLAGS’ beinhaltet ein ‘–disable-perl-regexp’ und man bekommt darum ein:

mika@grml ~ % grep -P foo bar
grep: The -P option is not supported

zu sehen. Was – ausser Distributionswechsel und Selbstkompilieren ;-) – also machen? Es gibt eine grep-Version die PCRE (via libpcre) unterstützt: pcregrep. Informationen zu PCRE selbst gibt es in der Manualpage pcrepattern. Für gzip-komprimierte Dateien gibt es dann noch das Wrapperskript zpcregrep.

Leider ist die Version von pcregrep in Debian (unstable) ein wenig veraltet, ein Bugreport ist daher gerade rausgegangen (#323761).

2 Responses to “pcregrep – a grep with Perl-compatible regular expressions.”

  1. Thomas Themel Says:

    Ganz nett… Aber man hat ja ohnehin ein Perl, und dann macht man eben perl -ne “print if /regexp/;”…

  2. mika Says:

    Jupp, interaktiv durchaus. In Shellskripten stehe ich nicht so sonderlich auf Perleinzeiler (wobei da spezielle Binaries natürlich auch ihre Nachteile haben). Aber man kann natürlich auch gleich #!/usr/bin/perl verwenden… ;-)