2017-04-05 39 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命令結合起來:

​​
相關問題