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).
August 24th, 2005 at 21:32
Ganz nett… Aber man hat ja ohnehin ein Perl, und dann macht man eben perl -ne “print if /regexp/;”…
August 24th, 2005 at 22:27
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… ;-)