使用git grep在git中搜索代码模式

时间:2018-04-10 15:22:28

标签: regex bash git grep

我一直在尝试使用git在dev分支上的源代码中找到t()函数的实例。提出以下一行

git branch -a | tr -d \* | sed '/->/d' | xargs git grep -E -e "/(t\(\').*\'\)/sU" 

此处搜索在所有分支上完成,但我仍然没有从查询中获得结果。简单的搜索查询(git grep" t('")工作得很好,但不能用于此目的。 从git config启用ExtendedRexp。

有人有过类似的问题吗?

1 个答案:

答案 0 :(得分:1)

不必使用正则表达式中的单引号转义。另外,为了避免匹配以't'结尾的其他函数,例如get,您可以使用\W来匹配任何非非单词字符。

git branch -a | tr -d \* | sed '/->/d' | xargs git grep -E -e "\Wt\('.*'\)"

如果要在匹配结果中捕获组,则可以添加其他括号。例如:

Rubular example