Grep

grep 顯示包含包含字元串的文件的文件夾

  • December 23, 2013

我需要在我的伺服器上執行 grep 來搜尋擴展 CodeIgniter 1 文件的文件,因為我們正在升級到 CI2。在一個文件夾中包含數百個特定於站點的文件夾,例如:

dev/sitea.com/site/www
dev/siteb.com/site/www
dev/sitec.com/site/www
... and so on

我如何 grep 查找直接在 dev 下的哪些文件夾包含引用字元串“MY_Output”(php 文件)的文件(或變數子文件夾中的許多文件)

我知道-l列出文件的標誌,但我不確定如何將它與其他標誌放在一起說“告訴我哪些網站包含帶有此字元串的文件

這可能嗎?謝謝!

編輯:澄清一下,這些站點級文件夾將包含擴展 MY_Output.php 的文件,這是一個常見的共享文件:

class Whatever extends MY_Output

這將是我的方法:

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

注意使用print0參數 tofind-0(零)標誌 to xargs,如果您的文件名中嵌入了空格,這可以防止出現問題。

我在發布的各種解決方案中看到了很多不必要的複雜性。考慮以下:

grep -r [regex to find] [path to search] | awk -F: '{print $1}' | uniq

引用自:https://serverfault.com/questions/290915