2009-02-26 39 views

回答

10
grep google *.php 

如果要跨越許多目錄:

find . -name \*.php -print0 | xargs -0 grep -n -H google 

(如在評論解釋,-H是有用的,如果xargs的出現只有一個剩餘文件)

+0

後面的代碼是否會查找子目錄或主目錄? – 2009-02-26 20:40:12

+0

你需要這個名字,因爲你可能不知道它是哪個文件 - 特別是如果xargs將事情打包並留下一個單獨的文件是不好的。 – 2009-02-26 20:40:16

+0

不要忘記,如果您正在目錄樹中使用-print0來查找xargs,並且使用其中的名稱來填充空格,那麼您應該使用-print0。 – 2009-02-26 23:09:24

0

使用「男人的grep 「看到其他功能。

for i in $(ls *.php); do grep -n --with-filename "google" $i; done; 
5

你不應該這樣做

$ *.php | grep 

,意思是「運行的第一個PHP程序,其餘的名稱通配符作爲參數,然後在輸出運行grep的」。

它應該是:

$ grep -n -H "google" *.php 

-n標誌告訴它做的行號,和-H標誌告訴它顯示即使只有文件的文件名。如果有多個文件正在搜索,Grep將默認顯示文件名,但您可能希望確保輸出一致,而不管有多少匹配文件。

0
find . -name "*.php" -print | xargs grep -n "searchstring" 
1
find ./*.php -exec grep -l 'google' {} \;