0

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

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

我尝试从互联网上找到的各种位拼凑一个 grep 命令,但是以前没有真正使用过 grep,拼凑起来有点困难。我将不胜感激任何帮助。

谢谢!

4

2 回答 2

1

这应该可以解决问题:

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

于 2012-04-06T16:36:35.877 回答
0

Grep 非常适合这项任务。

grep -rl '$str' .

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

于 2012-04-06T16:36:27.523 回答