这个问题已经有答案了:
How to get the json elements(key , value) in an object to be separated distinctly(1个答案)
12天前关闭
我有一个bash命令,它以下面的形式给我输出,这些是1块JSON对象,我在json > jq >输出后从文件中得到这些。
{
"key": "hello",
"value": "world"
}
{
"key": "foo",
"value": "bar"
}
{
"key": "Disney",
"value": "World"
}
{
"key": "South",
"value" "Africa"
}
现在我的问题是我的bash脚本如何分别生成每个JSON块。就像我想打印整个输出中的每个JSON块一样,我想遍历每个{}
块并对它做一些事情。
请注意,在这种情况下,命令替换没有帮助,因此将输出存储在文件中可以工作,但将其馈送到命令替换失败,因为这些花括号也作为单行而不是块注入?在bash中有没有一种方法可以将其作为块{}
读取和传递?
感谢帮助!
1条答案
按热度按时间hi3rlvi21#
使用与here相同的技术:jq 1.7提供了
--raw-output0
标志,您可以将其与read -d ''
合并结合使用:对于旧版本的jq(1.5+),您可以使用
-j
标志,并通过将过滤器更改为., "\u0000"
来手动生成NUL字符。