shell Jq:如何忽略键和值中的空格

wfauudbj  于 2022-11-16  发布在  Shell
关注(0)|答案(1)|浏览(201)

当使用Jq Play对提供的json进行查询时,输出看起来像预期的Demo。但是当我在shell脚本中尝试相同的查询并迭代对象时,我看到由于句子之间的空格而添加了新行。
查询:

query=$(cat $basename/test.json | jq -r '.DesignCode | to_entries[] | "\(.key):\(.value)"')

for i in $query

do
    printf "$i"
done

用于shell脚本
输出屏幕截图

编写查询的正确方法是什么?

brvekthn

brvekthn1#

我不确定命令的输出结果,但根据我的经验,shell在从字符串创建数组时有点混乱。
我经常使用的一个有用的解决方法是通过复合赋值强制shell将输出识别为数组:

query=( $(cat $basename/test.json | jq -r '.DesignCode | to_entries[] | "\(.key):\(.value)"') )

for i in $query

do
    printf "$i \n"
done

相关问题