使用jq将JSON的一部分存储在变量中

时间:2017-08-03 13:57:05

标签: json shell jq

你好我有shell和jq。

的问题

我有文件,让我们说text.txt,它只包含JSON,让我们说{“行”:[{“example”:“20”}]}。 我需要在shell中编写一个脚本,将该文本文件作为第一个参数读取,并将该实例中的“example”值存储在变量中, 使用jq。

这是我到目前为止所做的,但它只打印出一个空行:

file=$( readlink -f "$1" )
variable="$file" | jq -j ".rows[].example"
echo "$variable"

对我来说很有趣的是这段代码正常工作

file=$( readlink -f "$1" )
cat "$file" | jq -j ".rows[].example"

意味着它将打印出20。

有谁知道我做错了什么。 Thx家伙

1 个答案:

答案 0 :(得分:1)

不是真正的jq问题,而是

variable="$file" | jq -j ".rows[].example"

我怀疑你打算这样的事情:

variable=$(cat "$file" | jq -j ".rows[].example")