我正在编写一个 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”和“-n”,因为我经常使用它们。