【问题标题】:Output "linux shell" vs "php system()" - sorting输出“linux shell”与“php system()”——排序
【发布时间】:2017-04-03 10:12:07
【问题描述】:

让我们执行命令:

# zcat -f /var/log/remotelog*|grep -e "10\.0\.1\.15"|grep -e "7,35)"|sort -k 1M -k 2r|tail -n 250 3>&1

得到这样的输出:

Apr  3 11:38:49 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link on(operational)
Apr  3 11:38:35 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link off(operational)
Apr  3 11:06:20 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link on(operational)
Apr  3 11:06:16 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link off(operational)
Apr  3 11:06:15 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link on(operational)
Apr  3 11:05:41 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link off(operational)
Apr  2 17:54:02 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link on(operational)
Apr  2 17:53:31 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link off(operational)
Apr  1 02:02:27 10.0.1.15 GPOND[927]: Success upgrade ONU(7,35)
Apr  1 02:02:23 10.0.1.15 GPOND[927]: Success Download-OS ONU(7,35)
Mar 31 15:03:51 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link on(operational)
Mar 31 15:03:41 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link off(operational)

非常好...

但后来我这样做:

<?php
$e = "zcat -f /var/log/remotelog*|grep -e \"10\.0\.1\.15\"|grep -e \"7,35)\"|sort -k 1M -k 2r|tail -n 250 3>&1";
system($e, $ret);
echo $ret ;
?>

我得到了这个输出:

Mar 31 15:03:51 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link on(operational)
Mar 31 15:03:41 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link off(operational)
Apr  3 11:38:49 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link on(operational)
Apr  3 11:38:35 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link off(operational)
Apr  3 11:06:20 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link on(operational)
Apr  3 11:06:16 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link off(operational)
Apr  3 11:06:15 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link on(operational)
Apr  3 11:05:41 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link off(operational)
Apr  2 17:54:02 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link on(operational)
Apr  2 17:53:31 10.0.1.15 GPOND[927]: ONU(7,35) eth port 1 link off(operational)
Apr  1 02:02:27 10.0.1.15 GPOND[927]: Success upgrade ONU(7,35)
Apr  1 02:02:23 10.0.1.15 GPOND[927]: Success Download-OS ONU(7,35)

为什么?没看懂……

【问题讨论】:

    标签: php linux output


    【解决方案1】:

    如果我理解正确,第二个(通过 PHP)是“正确”的输出。

    由于列表首先按月份名称排序,月份名称取决于语言环境设置,我怀疑命令行和 PHP 中的语言环境设置(LC_* 环境变量)不同,这会影响输出排序。

    【讨论】:

    • 你是对的。现在看起来很明显 - 我在排序之前添加了 env LC_ALL=pl_PL ,现在它就像一个魅力。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多