如何查找包含字符串的所有文件?

我正在使用这个

# 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-number

在每个输出行的前面添加输入文件中基于1的行号。 (-n由POSIX指定)。

链接地址: http://www.djcxy.com/p/13677.html

上一篇: How to find all files containing a string?

下一篇: include command doesn't work in OSX Zsh