awk在由awk捕获的字段上

awk在由awk捕获的字段上,awk,Awk,我找不到正确的方法来解析awk已经检索到的字段 使用awk收集第n个元素,如下所示: bbr:(bw:492.2Mbps,mrtt:0.412,pacing_gain:1.25,cwnd_gain:2) 为了收集数据,我想再次解析第n个字段: $1 = 492.2; $2 = 0.41; $3 = 1.25; $4 = 2; 如果你有任何建议,你会很高兴听到的 G.在这种情况下,字符串存储到文件中,读取到$0,清理,拆分成散列a,并在循环中输出: $ awk '{gsub(/^.*\(|

我找不到正确的方法来解析awk已经检索到的字段

使用awk收集第n个元素,如下所示:

bbr:(bw:492.2Mbps,mrtt:0.412,pacing_gain:1.25,cwnd_gain:2)
为了收集数据,我想再次解析第n个字段:

$1 = 492.2; 
$2 = 0.41;
$3 = 1.25; 
$4 = 2;
如果你有任何建议,你会很高兴听到的


G.

在这种情况下,字符串存储到
文件中,读取到
$0
,清理,
拆分成散列
a
,并在
循环中输出:

$ awk '{gsub(/^.*\(|\)$/,"");n=split($0,a,/[:,]/);for(i=2;i<=n;i+=2)print a[i]}' file
492.2Mbps
0.412
1.25
2

$awk'{gsub(/^.*\(|\)$/,”);n=split($0,a,/[:,]/);for(i=2;iawk有
split()
函数。查看手册页了解它的工作原理。请发布生成输出的
awk
命令Hank you Kent,这就是我要找的函数。谢谢你,James,这是我需要的。关于该脚本,GNU awk没有任何特定内容。另外,你不需要
,gsub()因为这是默认值。
gsub(/^.*\(|\)$/,"")     # clean outside of parentheses, including them
n=split($0,a,/[:,]/)     # split to a 
for(i=2;i<=n;i+=2)       # further process every other element in a
    print a[i]           # you could remove the Mbps and what not here