我试图使用git grep在我的git存储库中查找文件,我没有简单的方法可以在没有手动搜索的情况下这样做。我找到了一个这样的解决方法:
git grep -l 'term1' | xargs -i grep -l term2 {}
但是我想知道是否有类似的方法不需要xargs:
git grep -l -E 'term1|term2'
这实际上意味着向我展示包含term1或terms2的文件...是否有"显示这些条款的文件。"
我试图以一种对于将命令传递给其他命令不实用的方式使用git grep命令。我真的很讨厌使用python的子进程模块及其使用管道......
答案 0 :(得分:1)
实现目标的两种方法:
1) 将-e
选项指定的多种模式与--and
标志相结合
<强> - 和强>
的 - 或强>
的 - 不强>
(...)
使用布尔表达式指定如何组合多个模式。
git grep -l -e 'term1' --and -e 'term2'
使用--all-match
标志2)
当给出多个模式表达式与 - 或结合使用时,此标志 指定将匹配限制为具有与所有行匹配的行的文件 他们。
git grep -l --all-match -e 'term1' -e 'term2'
答案 1 :(得分:0)
您可以将它与另一个grep命令结合使用:
git grep -l -E 'term1' | grep term2