我正在尝试过滤目录中文件集的内容,并使用这样的命令仅输出前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`;
如何解决这个问题?
答案 0 :(得分:0)
使用passthru而不是exec来获取所有输出,而不仅仅是最后一个字符串
passthru($cmd, $output);
echo $output;