gpt4 book ai didi

php - grep 命令输出中的特定字符串

转载 作者:太空宇宙 更新时间:2023-11-04 10:16:27 32 4
gpt4 key购买 nike

我分析来自多播地址的流。命令的输出如下所示:

...
Sep 03 19:06:45: INFO: Bitrate: 8241 Kbit/s
Sep 03 19:06:45: ERROR: Scrambled: 250=4792 251=132 252=132 253=263
...

我需要在 Bitrate: [ 8241 ] 之后获取值并在 php 脚本中设置第一个变量,在 Scrambled: 之后仅在 "="[250,251,252,253] 之前为第二个变量.示例 $var1=8241; $var2=250,251,252,253 .我发现如何 grep -oP '(?<=Bitrate: )[0-9]+'所以我得到“8241”,但我一步需要两个变量。

最佳答案

将所需的值同时 grep 到 2 个变量中会有问题。

所以这是一个完整的 php 解决方案(使用 shell_exec 函数调用 awk 脚本):

<?php

$command = 'yourcommand | awk \'/Bitrate/{ printf "%d ", $6 }/Scrambled/{ for(i=6;i<=NF;i++)'
. 'printf "%d ",substr($i,1,index($i,"=")) }\'
';
$result = trim(shell_exec($command));
if ($result) {
$arr = explode(" ", $result);
$bitrate = $arr[0];
$scrambled = array_slice($arr, 1);
}

print_r('bitrate: ' . $bitrate . PHP_EOL);
print_r('scrambled: ');
print_r($scrambled);

格式化输出:

bitrate: 8241
scrambled: Array
(
[0] => 250
[1] => 251
[2] => 252
[3] => 253
)

关于php - grep 命令输出中的特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46026382/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com