2017-04-05 65 views
1

我正在尝试使用git grep在我的git存储库中查找文件,而且我没有简单的方法无需手动搜索。我已经找到一个解决方法是这样的:通过git grep查找包含两个特定术语的文件

git grep -l 'term1' | xargs -i grep -l term2 {} 

但我不知道是否有类似这样不需要xargs的办法:

git grep -l -E 'term1|term2' 

这基本上意味着我展示包含文件无论是术语1还是术语2 ...是否有“向我展示这些条款的文件”。

我正在尝试使用git grep命令,这种方式对于将命令输入其他命令不太实用。我真的很讨厌用Python的子模块及其使用管道的工作......

回答

1

两种方式来实现目标:

1 )通过-e选项与--and标志指定组合多个图案

--and
--or
--not
(...)
指定多个图案如何使用布尔表达式组合。

git grep -l -e 'term1' --and -e 'term2' 

2)使用--all-match标志

当给出多个图案表达与--or组合,该标志 被指定为所述匹配限制到有匹配其所有 行的文件。

git grep -l --all-match -e 'term1' -e 'term2' 

https://git-scm.com/docs/git-grep#git-grep--e

+0

这是了不起的,谢谢RomanPerekhrest! – JacobIRR

+0

@JacobIRR,不客气! – RomanPerekhrest

0

你可以用另一grep命令结合起来:

​​
相关问题