【发布时间】:2015-07-13 19:58:16
【问题描述】:
因此,为了使用 bash 解析 JSON,我使用 python -mjson.tool 来 grep 字段并使用 awk 来获取值。我曾经在 curl 之后立即对其进行管道传输,因此我可以执行类似 curl $url | python -mjson.tool | grep (something) | awk (something) 的操作,但我想将 curl 输出存储到一个变量并将其发送到 python -mjson.tool。我试过python -mjson.tool $json 或python -mjson.tool <<< $json,但都没有奏效。有没有办法将json变量输入python?
另外,我不能使用 jq。
【问题讨论】:
-
第二次尝试应该会奏效,尽管引用变量扩展可能会有所作为(无论如何你都应该这样做)。话虽这么说,您实际上从不在管道中需要
grep | awk,因为 awk 几乎可以(如果不是实际上)完成所有grep可以做的事情,对于这类事情,最好只使用无论如何直接python。 -
你能详细说明不使用 grep 吗?我认为如果我
grep一个字段,它会更具可读性。 -
awk 可以搜索具有给定文本本身的行。以
/foo/ {<awk commands here only happen on lines that match 'foo'}为例。 -
还有一个很棒的工具,叫做jsawk,它可能对你有用。