gpt4 book ai didi

unix - 如何为 JQ 中的每个元素修剪空白?

转载 作者:行者123 更新时间:2023-12-01 03:34:23 25 4
gpt4 key购买 nike

我有以下简单的 JSON

json='[{"k1":" http://url", "k2":null, "k3":" v3", "k4":" v4"}]'

我需要的是:
"http://url",null

(在 v1v2 之前没有空格)

我所拥有的是:
echo $json | jq -c '.[] | .k1, .k2 ' | paste -d "," - -

如何摆脱 k1 和 k2 值中的空间?

最佳答案

如果输入是一组 JSON 对象,并且您正在寻找单行,那么以下内容似乎可以满足您的要求:

jq '.[]|(.k1,.k2)|if type=="string" then gsub("^\\s+|\\s+$";"") else . end' | paste -d "," - -

根据您的输入,这会产生
"http://url",null

如果您对如何灵活处理 null显示在输出中,您也可以考虑全 jq 解决方案(即没有 paste )。例如:
jq -r '.[]|[.k1,.k2]|map(if type=="string" then gsub("^\\s+|\\s+$";"") else . end)|@csv'

根据您的输入,这会产生:
"http://url",

关于unix - 如何为 JQ 中的每个元素修剪空白?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44526740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com