Files

如何遍歷目前和子目錄中的所有文件來查找字元串?

  • October 22, 2021

嗨,例如,我正在嘗試遍歷目錄及其所有子目錄以在所有文件中查找字元串 ‘foo’。然後我想顯示包含它的所有文件的文件名(包括完整路徑)。

作業系統是 unix 並使用 bash shell。

任何建議,將不勝感激。謝謝

您可以使用遞歸grep. grep至少在 GNU中,這是一個-R選項:

grep -R foo /path/to/parent/directory

例如,如果您使用如上所述的完整路徑,/home/callsign223/foo/則所有文件都將顯示它們的限定路徑。如果您只想查看文件名,而不是匹配的行,則可以使用-l僅列印文件名:

grep -lR foo /path/to/parent/directory

請注意,該-R選項不可移植,並非所有grep實現都支持。

如果grep -R不是一個選項,那麼您可以使用在每個文件find上執行:grep

find ./ -type f -exec grep -Hni "some-string" {} ';'

引用自:https://unix.stackexchange.com/questions/674267