繁体   English   中英

使用 jq -jr 解析 json 输出

[英]Parsing json output using jq -jr

我正在运行 puppet bolt 命令,以 json 格式从一组服务器中查询某些信息。 我正在将它输送到 jq .. 下面是我得到的

$ bolt command run "cat /blah/blah" -n @hname.txt -u uid --no-host-key-check --format json |jq -jr '.items[]|[.node],[.result.stdout]'

[
  "node-name"
][
  "stdout data\n"
]

我需要做什么才能使它看起来像下面这样

["nodename":"stdout data"]

如果您真的想要无效的 JSON 输出,则必须构造输出字符串,这可以使用字符串插值轻松完成,例如:

jq -r '.items[] | "[\"\(.node)\",\"\(.result.stdout)\"]"'

@peak谢谢你..有帮助。 下面是它的样子

$ bolt command run "cat /blah/blah" -n @hname.txt -u UID --no-host-key-check --format json |jq -r '.items[] | "[\"\(.node)\",\"\(.result.stdout)\"]"'
["node name","stdout data
"]

我使用了一种变通方法,通过对命令本身使用 @csv 标志来获取我需要的数据。 在下面与您分享有效的方法。

$ bolt command run "cat /blah/blah" -n @hname.txt -u uid --no-host-key-check --format json |jq -jr '.items[]|[.node],[.result.stdout]|@csv'
""node-name""stdout.data
"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM