如何查找包含字符串的所有文件?
我正在使用这个
# 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