Python 通过git grep查找同时包含两个指定术语的文件
我正在尝试使用git grep在我的git存储库中查找文件,如果不进行手动搜索,我没有简单的方法。我发现了一个类似这样的解决方法:Python 通过git grep查找同时包含两个指定术语的文件,python,git,unix,grep,git-grep,Python,Git,Unix,Grep,Git Grep,我正在尝试使用git grep在我的git存储库中查找文件,如果不进行手动搜索,我没有简单的方法。我发现了一个类似这样的解决方法: git grep -l 'term1' | xargs -i grep -l term2 {} 但我想知道是否有类似的方法不需要xargs: git grep -l -E 'term1|term2' 这实际上意味着向我显示包含term1或terms2的文件。。。是否有“向我显示包含这两个术语的文件” 我试图以一种不实用的方式使用git grep命令,将命令管道化
git grep -l 'term1' | xargs -i grep -l term2 {}
但我想知道是否有类似的方法不需要xargs:
git grep -l -E 'term1|term2'
这实际上意味着向我显示包含term1或terms2的文件。。。是否有“向我显示包含这两个术语的文件”
我试图以一种不实用的方式使用git grep命令,将命令管道化到其他命令中。我真的很讨厌使用python的子流程模块和它对管道的使用…您可以将它与另一个grep命令结合使用:
git grep -l -E 'term1' | grep term2
实现目标的两种方法: 1)将
-e
选项指定的多个模式与--和
标志组合在一起
--和--或
--不
(… )
指定如何使用布尔表达式组合多个图案
2)使用
--所有匹配
标志
当给出多个模式表达式并使用--或此标志时
指定以将匹配限制为具有要匹配所有行的文件
是的
git grep -l -e 'term1' --and -e 'term2'
git grep -l --all-match -e 'term1' -e 'term2'