Mac OS X和BSD上的'git grep'和单词边界

Yog*_*rma 4 regex git macos grep bsd

我运行git grep "\<blah\>"规律我的Linux开发服务器上,但我刚发现我不能够使用\<,并\>在Mac(Mac OS X的10.6.8)(无法使用它=没有找到任何东西)。Mac中的正则表达式语法是否不同?

我尝试使用git grep -E "\<blah\>"但无济于事!:-(

hol*_*eek 5

我猜这是由 BSD 与 Linux grep 库引起的。

查看 git grep 的 -w(仅在单词边界匹配模式)选项是否适合您:

$ git grep -w blah
Run Code Online (Sandbox Code Playgroud)


nwe*_*hof 5

经过同样的努力,我在BSD邮件列表上发现了这篇非常有用的文章。所以这是(虽然很丑)的解决方案:

git grep "[[:<:]]blah[[:>:]]"
Run Code Online (Sandbox Code Playgroud)

-wgit-grep 的标志也可以使用,但是有时您只想匹配单词的开头或结尾。

更新:这已在OS X 10.9“小牛”中更改。现在你可以使用\<\>\b[[:<:]]并且[[:>:]]不再受支持。


小智 5

您可以在PCRE支持和使用git grep -P "\bblah\b"字边界的情况下编译 git。

以下是有关如何使用 OSX Homebrew 编译 git 的指南: http://realultimateprogramming.blogspot.com/2012/01/how-to-enable-git-grep-p-on-os-x-using.html