【问题标题】:Read error log for a certain day读取某天的错误日志
【发布时间】:2014-10-30 19:06:35
【问题描述】:

我有一个名为“error_log”的 1GB 大错误日志,我只需要读取某一天的错误。我有这个简单的 PHP 代码来实现:

<?php

$lines = `cat error_log | grep '[27-Aug'`;
echo $lines;

?>

由于某种原因,这段代码在我尝试时什么也没输出。我想阅读 8 月 27 日记录的错误,因此我使用 [27-Aug',因为它是每个条目的前缀。

上面的代码有问题吗?当我尝试head 命令时,我确定文件路径并且它运行良好。

【问题讨论】:

    标签: php command-line grep command


    【解决方案1】:

    这是错误的

    grep '[27-Aug'
    

    试试

    grep '\[27-Aug'
    

    [是特殊字符,需要转义

    但将行改为:

    lines=$(grep '\[27-Aug' error_log)
    

    不要将cat 归档到可以自行读取的程序中。
    避免使用旧的和过时的反引号,使用像这样的括号var=$(code)

    【讨论】:

    • 行变量之前是否缺少$
    • 现在得到这个错误:PHP Parse error: syntax error, unexpected '(', expecting variable (T_VARIABLE) or '$' in
    • @MichaelSamuel php 不是我的强项。尝试添加$
    • 好的...刚刚发现shell_exec 命令是该命令的运行方式...谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-03-15
    • 2013-06-04
    • 2017-05-12
    相关资源
    最近更新 更多