如何编辑“ tail”的输出?

时间:2019-06-04 21:21:12

标签: php bash shell

我正在尝试为MakeMKV创建一个Web进度栏。

run # tail -f /disc_progress

我得到一个文件结果:

PRGV: 0,0,65536 <= 0% (65536 goal = 100%)
from 0%
PRGV: 716,0,65536
,
PRGV: 13281,13281,65536
,
PRGV: 65042,65041,65536
until 100%
PRGV: 65536,65536,65536 <= 100%

65536最后是100%,所以我可以开始。 理想情况下,我想支付倒数第二笔, 例如PRGV: 65042,65041,65536

Var1 = 65042 and Var2 = 65041

如何在开头的“ PRGV:”处截断? 最后如何减少65041,65536,对我来说这将是重要变量0% 和中间的数字(逗号之间(65041))。

然后应该在php变量中:

echo $Disc_Progress=shell_exec("sudo tail -f / disc_progress");

链接到GitHub FFmpegUI.

2 个答案:

答案 0 :(得分:0)

您可以将tail -f的输出传递到命令,该命令会将其输入复制到其输出,直到到达100%行,然后退出。

$Disc_Progress=shell_exec("sudo tail -f /disc_progress | sed '/100%/q'");

您要的行将是$Disc_Progress中倒数第二行。

答案 1 :(得分:0)

我在寻找那个东西

$get_progress_value=shell_exec("tail -1  /disc_progress");
$Progress_Array=preg_split('/:|,/',$get_progress_value);

    echo "<pre>";
    print_r($Progress_Array);
    echo "</pre>";  

输出:

Array
(
    [0] => PRGV
    [1] => 120 
    [2] => 536
    [3] => 65536
)