grep を使用してコマンドの出力から特定の変数を印刷する方法

grep を使用してコマンドの出力から特定の変数を印刷する方法

test.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.65secどう39640.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

関連情報