我正在运行一个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"]
答案 0 :(得分:0)
如果您确实想要无效的JSON输出,则必须构造输出字符串,这可以使用字符串插值轻松完成,例如:
jq -r '.items[] | "[\"\(.node)\",\"\(.result.stdout)\"]"'
答案 1 :(得分:0)
@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
"