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)

62.89mm/s合計を出力として取得し、PHPコードを使用して62.89印刷する方法は?grep

このコードを使用していますが、次のように行全体が印刷されます。Avg.Speed(All): 62.89mm/s

<?php
$gcode_new = "grep -P 'Avg.Speed(All):' 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 ;
?>

質問の更新:「フルタイム(加速なし):」に関連する上記のデータから11:00:41をコピーするにはどうすればよいですか?答えに提案されたコマンドを試してみましたが、11:00:41 (39640.65sec)これを避ける方法は次のとおりです(39640.65sec)$ grep -Po '(?<=Overall Time \(w/o Acceleration\): ).*' testjar.txt

ベストアンサー1

GNU grep経由で前方に戻るアサーションを使用します。

$ grep -Po '(?<=Avg.Speed\(All\):    ).*' test.txt
62.89mm/s
$ grep -Po '(?<=Avg.Speed\(All\):    )[0-9\.]+' test.txt
62.89

おすすめ記事