簡體   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