![grep을 사용하여 명령 출력에서 특정 변수를 인쇄하는 방법](https://linux55.com/image/171188/grep%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%AA%85%EB%A0%B9%20%EC%B6%9C%EB%A0%A5%EC%97%90%EC%84%9C%20%E2%80%8B%E2%80%8B%ED%8A%B9%EC%A0%95%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%9D%B8%EC%87%84%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
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)
39640.65sec
합계를 출력 으로 얻고 PHP 코드를 사용하여 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