我git grep "\<blah\>"
在我的 linux 开发服务器上定期运行,但我刚刚发现我无法在 Mac (Mac OS X 10.6.8)\<
上\>
使用(无法使用 = 它没有找到任何东西)。Mac中的正则表达式语法是否不同?
我尝试使用git grep -E "\<blah\>"
但无济于事!:-(
在为此苦苦挣扎之后,我在 BSD 邮件列表上发现了这篇非常有用的帖子。所以这是(虽然相当丑陋)的解决方案:
git grep "[[:<:]]blah[[:>:]]"
git-grep的-w
标志也有效,但有时您只想匹配单词的开头或结尾。
更新:这在 OS X 10.9 "Mavericks" 中有所改变。现在您可以使用\<
、\>
和\b
。[[:<:]]
并且[[:>:]]
不再受支持。
我猜这是由 BSD vs Linux grep 库引起的。
查看 git grep 的 -w (仅在单词边界匹配模式)选项是否为您执行此操作:
$ git grep -w blah
PCRE
您可以在支持的情况下编译 git并将其git grep -P "\bblah\b"
用于单词边界。
这是关于如何使用 OSX Homebrew 编译 git 的指南: http ://realultimateprogramming.blogspot.com/2012/01/how-to-enable-git-grep-p-on-os-x-using.html