shell 如何将2个度量的查询响应拆分为两个[关闭]

vwoqyblh  于 2023-05-23  发布在  Shell
关注(0)|答案(1)|浏览(159)

已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。

2天前关闭。
Improve this question
PROMETHEUS_METRIC:{name:sc_pcd_g2version,容器:mgmtbroker,端点:vxexporter,示例:10.42.24.132:9116,作业:prometheus,namespace:输送,pod:chn 1-d1-ac-0,服务:prometheus }{name:sc_pcd_g2version,容器:mgmtbroker,端点:vxexporter,示例:10.42.3.110:9116,作业:prometheus,namespace:输送,pod:chn 1-d1-ia-0,服务:普罗米修斯
JSON格式。如何在shell脚本中将上述响应拆分为2。我有变量PROMETHEUS_METRIC有上面的json。

{ __name__: sc_pcd_g2version, container: mgmtbroker, endpoint: vxexporter, instance: 10.42.24.132:9116, job: prometheus, namespace: delivery, pod: chn1-d1-ac-0, service: prometheus }

{ __name__: sc_pcd_g2version, container: mgmtbroker, endpoint: vxexporter, instance: 10.42.3.110:9116, job: prometheus, namespace: delivery, pod: chn1-d1-ia-0, service: prometheus }
zd287kbt

zd287kbt1#

输入和期望的输出都不是有效的JSON。因此,将输入和输出视为原始文本(使用jq和标志-Rr,尽管此时您可以使用任何与JSON无关的文本处理工具),您可以简单地通过正则表达式进行扫描,例如从{}

jq -Rr 'scan("({[^}]*})")[]'
{ __name__: sc_pcd_g2version, container: mgmtbroker, endpoint: vxexporter, instance: 10.42.24.132:9116, job: prometheus, namespace: delivery, pod: chn1-d1-ac-0, service: prometheus }
{ __name__: sc_pcd_g2version, container: mgmtbroker, endpoint: vxexporter, instance: 10.42.3.110:9116, job: prometheus, namespace: delivery, pod: chn1-d1-ia-0, service: prometheus }

Demo

相关问题