awk怎么将自定义匹配的结果传给变量?

比如

str="abc d:aaa, timestamp:  
dwadwa d:bbb, timestamp:  
rererere d:ccc, timestamp:  
"

怎么使用awk提取最终内容为一行: aaa, bbb, ccc

我知道在正则中用 ()可以将想要保留的内容保留,然后在$1 表示这个内容,但是在awk中似乎无效。

我的尝试:
awk '{sub(/.+d:(\w+).+/n/,$1); print }'
肯定是报错了,或者有什么别的办法可以实现这个功能也行,但是最好是用awk实现,多谢了~

https://blog.csdn.net/qq_34591366/article/details/84654005

可以定义一个变量然后接收 awk 的输出结果:

result=`echo $str | awk '{sub(/.+d:(\w+).+/n/,$1); print }'`

Tab 上面那个字符是执行命令的,用它执行命令返回的结果赋值给一个变量。