'git grep' и границы слов в Mac OS X и BSD - PullRequest
4 голосов
/ 30 сентября 2011

Я регулярно запускаю git grep "\<blah\>" на моем сервере разработки Linux, но я только что обнаружил, что не могу использовать \< и \> на Mac (Mac OS X 10.6.8) (не могу использоватьне находит ничего).Отличается ли синтаксис регулярных выражений в Mac?

Я пытался использовать git grep -E "\<blah\>", но безрезультатно!:-(

Ответы [ 3 ]

5 голосов
/ 18 февраля 2013

После борьбы с этим я обнаружил этот очень полезный пост в списке рассылки BSD.Итак, вот (хотя и довольно некрасивое) решение:

git grep "[[:<:]]blah[[:>:]]"

Флаг git-grep -w также работает, но иногда вы хотите соответствовать только началу или концу слова.

Обновление: Это изменилось в OS X 10.9 "Mavericks".Теперь вы можете использовать \<, \> и \b.[[:<:]] и [[:>:]] больше не поддерживаются.

4 голосов
/ 30 сентября 2011

Я полагаю, это вызвано библиотекой grep BSD против Linux.

Проверьте, подходит ли вам опция -w (шаблон совпадения только на границе слова) для git grep:

$ git grep -w blah
3 голосов
/ 26 апреля 2013

Вы можете скомпилировать git с поддержкой PCRE и использовать git grep -P "\bblah\b" для границ слов.

Вот руководство по компиляции git с использованием OSX Homebrew: http://realultimateprogramming.blogspot.com/2012/01/how-to-enable-git-grep-p-on-os-x-using.html

...