我在我的linux开发服务器上定期运行git grep "\<blah\>"
,但我发现我无法在Mac上使用\<
和\>
(Mac OS X 10.6.8)(不能使用=它没有找到任何东西)。 Mac中的正则表达式语法是否不同?
我尝试使用git grep -E "\<blah\>"
但无济于事! :-(
答案 0 :(得分:4)
我猜这是由BSD与Linux grep库引起的。
查看git grep中的-w(仅在字边界处匹配模式)选项是否适合您:
$ git grep -w blah
答案 1 :(得分:4)
在努力解决这个问题之后,我在BSD邮件列表上找到了this very helpful post。所以这是(虽然相当难看)解决方案:
git grep "[[:<:]]blah[[:>:]]"
git-grep的-w
标志也有效,但有时您只想匹配单词的开头或结尾。
更新:在OS X 10.9“Mavericks”中已经发生了变化。现在,您可以使用\<
,\>
和\b
。 1}}和[[:<:]]
不再受支持。
答案 2 :(得分:3)
您可以使用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