19

我试图通过嵌套子目录中的一堆文件来查找正则表达式匹配;我的正则表达式需要消极的后视。

Perl 有消极的lookbehinds,但据我所知GNU grep 不支持消极的lookbehinds

获得与支持负面后视的 GNU grep 等效的最简单方法是什么?

(我想我可以在 Perl 中编写我自己的 mini-grep,但这似乎没有必要。我的 Perl Cookbook 副本包括 tcgrep 的源代码;我应该使用它吗?如果是,最新的在哪里版本?不要告诉我我必须输入整个程序!)

4

2 回答 2

24

使用确认!Ack 是用 Perl 编写的,因此它使用 Perl 的正则表达式引擎(默认情况下)。

消极的后视是ack "(?<!bad)boy"(根据 Willert 的评论)

于 2010-03-22T04:25:39.303 回答
3

感谢其他问题的评论。我发现grep-P/--perl-regexp选项在实验上支持负向后查看,因此如果您更喜欢继续使用grep.

顺便说一句,我首选的替代方法grepgrin(用 python 编写)。

于 2011-12-12T20:19:58.717 回答