Files
如何遍歷目前和子目錄中的所有文件來查找字元串?
嗨,例如,我正在嘗試遍歷目錄及其所有子目錄以在所有文件中查找字元串 ‘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" {} ';'