grep 显示包含包含字符串的文件的文件夹

Ali*_*guy 6 grep

我需要在我的服务器上运行 grep 来搜索扩展 CodeIgniter 1 文件的文件,因为我们正在升级到 CI2。在一个文件夹中包含数百个特定于站点的文件夹,例如:

dev/sitea.com/site/www
dev/siteb.com/site/www
dev/sitec.com/site/www
... and so on
Run Code Online (Sandbox Code Playgroud)

如何使用 grep 查找dev 下的哪些文件夹包含引用字符串“MY_Output”(php 文件)的文件(或变量子文件夹中的许多文件)

我知道-l列出文件的标志,但我不确定如何将它与其他标志放在一起说“告诉我哪些网站包含带有此字符串的文件

这可能吗?谢谢!

编辑:澄清一下,这些站点级文件夹将包含扩展 MY_Output.php 的文件,这是一个常见的共享文件:

class Whatever extends MY_Output
Run Code Online (Sandbox Code Playgroud)

Aln*_*tak 17

这将是我的方法:

find dev -type f -print0 | \          # find all files
xargs -0 grep 'extends MY_Output' | \ # search for your string
cut -d/ -f2  | \                      # extract web folder name
sort | uniq                           # eliminate duplicates
Run Code Online (Sandbox Code Playgroud)

请注意使用print0参数 tofind-0(零)标志 to xargs,这可以防止文件名中嵌入空格时出现问题。