使用grep在目录中的所有文件中搜索字符串的实例,使用PHP bash脚本


Using grep to search for instances of a string in all files within a directory, using PHP bash script

我正在编写一个PHP命令行脚本,我想知道是否有grep专家可以帮助我想出一个执行以下操作的命令:

对于当前目录($curDir)中以.java结尾的所有文件,在文件中搜索$str的任何实例,并返回是否找到任何实例的指示符。

我试着从互联网上的各种比特中拼凑出一个grep命令,但由于以前没有真正使用过grep,所以拼凑起来有点困难。如果有任何帮助,我将不胜感激。

谢谢!

这应该可以做到:

exec("grep '$str' *.java", $output_array);

如果您希望-l只输出文件名,请使用它。其他grep选项可在此处找到:
http://unixhelp.ed.ac.uk/CGI/man-cgi?grep

根据$str是什么,您可能需要通过:escapeshellarg():
http://www.php.net/manual/en/function.escapeshellarg.php

Grep非常适合这项任务。

grep -rl '$str' .

该命令将报告与字符串匹配的文件的文件名。它只会报告每个文件名一次,但这似乎是你想要的。选项"-r"表示递归遍历文件系统,选项"-l"表示只报告包含匹配项的文件。您可能还想查看选项"-H"answers"-n",因为我经常使用它们。