我正在使用这个
# cat *.php* | grep -HRi error_reporting
这是我的结果
(standard input):$mosConfig_error_reporting = '0';
(standard input):error_reporting(E_ALL);
如何找出包含结果的文件?
答案 0 :(得分:2)
使用-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 </ strong>, - with-matches-matches
抑制正常输出;而是打印每个输入的名称 通常打印输出的文件。扫描 将在第一场比赛中停止。 (-l由POSIX指定。)
<强> - 包括= GLOB 强>
仅搜索基本名称与GLOB匹配的文件(使用通配符) 如--exclude所述进行匹配。
-n , - line-number
在每行输出中添加基于1的行号 输入文件。 (-n由POSIX指定。)