如何使用 grep 从命令的输出中打印特定变量

如何使用 grep 从命令的输出中打印特定变量

测试.txt 文件:

Ext Temperatur:  210.0°
Avg.Speed(All):    62.89mm/s
Avg.Speed(Print):  49.99mm/s
Avg.Speed(Travel): 199.84mm/s
Overall Time (w/o Acceleration): 11:00:41 (39640.65sec)

如何使用php 代码获取39640.65sec39640.65作为输出并进行打印?grep

我正在使用这段代码,但它打印例如:11:00:41 (39640.65sec)

<?php
$gcode_new = "grep -Po '(?<=Overall Time \(w/o Acceleration\):   ).*' test.txt";

include('Net/SSH2.php');

$ssh = new Net_SSH2('XXX.61.XXX.227');
if (!$ssh->login('root', 'PASS')) {
    exit('Login Failed');
}
$target = $ssh->exec($gcode_new);

echo $target ;
?>

答案1

你可以试试这个:

grep -Po "[.0-9]*(?=sec\))"

输出:

39640.65

答案2

如果文件中出现多行:

使用它来获取文件中的第一个匹配项:

grep -m1 -Po "[.0-9]*(?=sec\))" testing.txt

要获取文件中最后一次出现的位置:

grep -Po "[.0-9]*(?=sec\))" testing.txt | tail -1

相关内容