【发布时间】:2012-05-28 14:02:33
【问题描述】:
我有一个动态创建的 json 文件。 我只想知道“状态”的“错误”部分。有什么简单的方法可以做到这一点?
...
a lot of lines
...
"status": {
"errors": [
{
"message": "Input contained no data",
"reason": "invalid"
}
],
"state": "DONE"
}
...
a lot of lines
...
我需要在 shell 脚本中使用输出,所以首选 awk。
【问题讨论】:
-
您应该使用 Python 或 Perl 中的 JSON 解析模块或独立的 JSON 解析器。正则表达式不适合这个任务。
-
您也可以在 awk 中使用 JSON 解析模块:请参阅 github.com/dubiousjim/awkenough/blob/master/README.lib 并搜索 query_json。只是这样说是为了反驳普遍的误解,即 awk 对于这种事情来说功能太低了。也就是说,我在问题中看不到任何使 awk 比任何其他工具更适合的东西。