读取JSON文件的一部分

时间:2012-05-22 05:02:34

标签: json sed awk grep

我有一个动态创建的json文件。 我只想知道“状态”的“错误”部分。有没有简单的方法呢?

...
a lot of lines 
...

 "status": {
    "errors": [
      {
        "message": "Input contained no data", 
        "reason": "invalid"
      }
    ], 
    "state": "DONE"
  }
...
a lot of lines
...

我需要在shell脚本中使用输出,因此首选awk。

2 个答案:

答案 0 :(得分:0)

我会使用sed来选择一系列这样的行:

sed -e '/^    "errors\": \[/,/^    ],/!d' file.txt

结果:

    "errors": [
      {
        "message": "Input contained no data", 
        "reason": "invalid"
      }
    ],

如果我误解了您的问题,请考虑添加预期结果。

HTH

答案 1 :(得分:0)

这可能对您有用:

sed '/^ "status": {/,/^  }$/!d;/^    "errors": \[/,/^    \],/!d' file.txt