解析JSON文件而无需将其保存在文件中

时间:2019-02-01 13:22:39

标签: json shell jq

我有一个返回JSON转储的命令,该转储不会保存到任何文件中。

我必须在不保存输出的情况下从JSON响应中解析特定字段。

如果我保存命令的输出,然后像这样使用jqgrep解析它,我就能实现:

platform json_dump platform_id >resp.json
jq . resp.json | grep elbName

但是,我不想将命令平台json_dump platform_id的输出写入JSON转储到任何文件中。我想直接从命令中解析elbName

有办法吗?

3 个答案:

答案 0 :(得分:2)

只需将程序的输出通过管道传输到jq:

platform json_dump platform_id | jq .elbName

或其他。

PS:使用jq获得所需的值,而不是grep。这样做的示例。:

$ echo '{"elbName":"foo"}' | jq .elbName
"foo"

答案 1 :(得分:0)

您可以尝试使用其他管道将结果传递给jq命令

platform json_dump platform_id | jq .| grep elbName

答案 2 :(得分:0)

我假设您有python:)

platform json_dump platform_id | python -c 'import sys,json; print(json.load(sys.stdin)["elbName"])' # a bit long ? :)