grep -r(或 -R)不在子資料夾內搜尋

grep -r(或 -R)不在子資料夾內搜尋

已經有一段時間不使用linux了,改用windows了。在 Windows 中,每當我想在檔案和子資料夾內的檔案上搜尋字串時(例如 cs 檔案)

findstr /s /i /n "Thepattern" *.cs

最近,我發現在使用 Git 時安裝的 MINGW64 中可以使用 grep。所以我嘗試了

grep --color -n -r "Thepattern" *.cs

但即使我把-r搜尋不包括子目錄。

我用 grep 做錯了什麼?應該如何?

編輯:Anaksunaman 為我提供了正確的答案:

grep --color -n -r --include=*.cs "Thepattern"

和其他幾個選項:) 謝謝!

答案1

我發現你可以在使用 Git 時安裝的 MINGW64 中使用 grep 。

我假設您指的是 Git Bash。

我用 grep 做錯了什麼?又應該如何呢?

你應該嘗試這個:

 grep --color -n -r --include=*.cs "ThePattern"

--include=應該在之後-r。這會將結果限制為以“.cs”結尾的檔案。如果您願意,您也可以指定目錄,例如:

grep --color -n -r --include=*.cs "ThePattern" ~/some/directory/'with spaces'

在本例中,~指的是 Windows 上的使用者設定檔資料夾。

另外,假設「ThePattern」是字串文字,您可能需要包含-i以使內容不區分大小寫,例如:

 grep --color -n -i -r --include=*.cs "ThePattern"

否則,「ThePattern」與「Thepattern」不同,您可能不會得到任何結果。

請注意,您始終可以使用grep --help來獲取有關其他選項的資訊。

相關內容