Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
呼唤;grep“;及;标题「;来自PHP_Php_Shell_Grep_Head - Fatal编程技术网

呼唤;grep“;及;标题「;来自PHP

呼唤;grep“;及;标题「;来自PHP,php,shell,grep,head,Php,Shell,Grep,Head,我正在尝试筛选目录中文件集的内容,并使用以下命令仅输出前n行: gzip -dc $(find %pathtofolder%) | grep 27990 | head -n 50 在终端中运行此命令需要几秒钟的时间。但当我从PHP运行它时,几乎需要一个小时,因为文件的总大小是巨大的。 php似乎在等待gzip命令完成。 但如果我简单地跑: gzip -dc $(find /opt/data/bi/ets/20130616) | head -n 50 它立即给出结果。 我试过反报价,exec,

我正在尝试筛选目录中文件集的内容,并使用以下命令仅输出前n行:

gzip -dc $(find %pathtofolder%) | grep 27990 | head -n 50
在终端中运行此命令需要几秒钟的时间。但当我从PHP运行它时,几乎需要一个小时,因为文件的总大小是巨大的。 php似乎在等待gzip命令完成。 但如果我简单地跑:

gzip -dc $(find /opt/data/bi/ets/20130616) | head -n 50
它立即给出结果。 我试过反报价,exec,system

以下是php代码:

$cmd = 'gzip -dc $(find '.$path.' | grep -E "'.$regexp.'") | grep -E "'.$this->_buildRegExp().'" | head -n '.$r['limit'];
$res = `$cmd`;

如何解决此问题?

使用passthru而不是exec来获取所有输出,而不仅仅是最后一个字符串

passthru($cmd, $output);
echo $output;

不确定您在这里使用PHP做什么。我看不到任何PHP代码。$cmd='gzip-dc$(查找''.$path'.'grep-E'.$regexp'.'')'.'grep-E'.$this->'u buildRegExp().'.''.'head-n'.$r['limit'];然后是exec($cmd),但我将这个命令简化为复制well所需的最小值,您应该对此提出疑问。没有PHP代码是没有意义的。问题是命令在找到所有50行之后不会停止。我将用反引号替换exec