1
我使用這個如何查找包含字符串的所有文件?
# cat *.php* | grep -HRi error_reporting
這是我的結果
(standard input):$mosConfig_error_reporting = '0';
(standard input):error_reporting(E_ALL);
我如何找出哪些文件包含的結果?
我使用這個如何查找包含字符串的所有文件?
# cat *.php* | grep -HRi error_reporting
這是我的結果
(standard input):$mosConfig_error_reporting = '0';
(standard input):error_reporting(E_ALL);
我如何找出哪些文件包含的結果?
使用-l
選項只顯示文件名:
grep -il "error_reporting" *php*
對於遞歸,你可以--include
玩,表示要查找文件:
grep -iRl --include=*php* "error_reporting" *
但是,如果你想要顯示行號,那麼您需要使用-n
,因此-l
不會單獨工作。這是一種解決方法:
grep -iRn --include="*php*" "error_reporting" * | cut -d: -f-2
或
find . -type f -name "*php*" -exec grep -iHn "error_reporting" {} \; | cut -d: -f-2.
切口部分刪除匹配的文本,使得輸出是這樣的:
file1:line_of_matching
file2:line_of_matching
...
從man grep
:
-l, - 文件匹配
抑制正常輸出;而是打印輸出通常已經打印的每個輸入 文件的名稱。掃描 將在第一場比賽中停止。 (-l是由POSIX指定。)
--include = GLOB
只搜索其基名稱匹配GLOB(使用下--exclude如所描述的通配符 匹配)文件。
-n,--line數
前綴以其 輸入文件中的基於1的行號輸出的每一行。 (-n由POSIX指定)
謝謝,但我需要遞歸和文件路徑 – totalitarian 2014-09-01 11:15:41
當然!剛剛更新@totalitarian。 '--include'選項應該可以工作。讓我知道如果它對你有用! – fedorqui 2014-09-01 11:19:14
謝謝,這只是打印出一個PHP文件列表 – totalitarian 2014-09-01 11:22:52