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

Command line 如何查找包含字符串的所有文件?,command-line,grep,find,Command Line,Grep,Find,我在用这个 # 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 --i

我在用这个

# 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

剪切部分将删除匹配的文本,因此输出如下:

file1:line_of_matching
file2:line_of_matching
...
来自man grep:

-l、 -具有匹配项的文件

抑制正常输出;而是打印每个输入的名称 通常打印输出的文件。扫描 将在第一场比赛中停止-l由POSIX指定

-include=GLOB

使用通配符仅搜索基名称与GLOB匹配的文件 如-exclude下所述进行匹配

-n、 -行号

在输出的每一行前面加上其内部以1为基础的行号 输入文件-n由POSIX指定

使用-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

剪切部分将删除匹配的文本,因此输出如下:

file1:line_of_matching
file2:line_of_matching
...
来自man grep:

-l、 -具有匹配项的文件

抑制正常输出;而是打印每个输入的名称 通常打印输出的文件。扫描 将在第一场比赛中停止-l由POSIX指定

-include=GLOB

使用通配符仅搜索基名称与GLOB匹配的文件 如-exclude下所述进行匹配

-n、 -行号

在输出的每一行前面加上其内部以1为基础的行号 输入文件-n由POSIX指定


谢谢,但我需要递归和文件路径!刚刚更新了“极权主义”。-include选项应该有效。如果对你有影响,请告诉我!谢谢,这只是打印出一个php列表files@totalitarian这是你的预期产出吗?这是我从你的问题中了解到的。很抱歉,我无意中修复了此问题,因此无法再进行测试。我会把它标记为正确的想法谢谢,但我需要递归和FilePathsure!刚刚更新了“极权主义”。-include选项应该有效。如果对你有影响,请告诉我!谢谢,这只是打印出一个php列表files@totalitarian这是你的预期产出吗?这是我从你的问题中了解到的。很抱歉,我无意中修复了此问题,因此无法再进行测试。不过我会把它标记为正确的