我在 SO 阅读了许多现有问题,但没有一个回答我正在寻找的内容。我知道使用 sed/awk 在 bash 中解析 json 很困难,但我只需要在每条记录的键值对的整个列表中的每条记录中的几个键值对。我想这样做是因为它会更快,因为主 JSON 非常大,有数百万条记录。
JSON格式如下:
{
"documents":
[
{
"title":"a", //needed
"description":"b", //needed
"id":"c", //needed
....(some more:not useful)....
"conversation":
[
{
"message":"",
"id":"d", //not needed
.....(some more)....
"createDate":"e", //not needed
},
...(some more messages)....
],
"createDate":"f", //needed
....(many more labels).....
}
],
....(some more global attributes)....
}
现在为此,我需要标记为需要的属性,但它们的公共键使得通过简单的 sed/awk 获取它成为一个问题。任何人都可以建议我们是否可以使用 sed/awk 来做到这一点。如果可能的话,将不胜感激任何帮助实现同样的目标。
PS:我知道jsawk
但我不想引入任何依赖,所以如果可能的话,请建议使用 sed/awk。
编辑:下面给出的格式的多个 extries(如在文档中我们有一个列表)
"title":"a",
"description":"b"
"id":"c"
"createDate":"f"
编辑: JSON 没有任何空格。它的格式是为了便于阅读。