我想选择一个值,然后过滤。但它有一个空格。我想用for循环来完成这个任务,但使用for循环时没有任何输出。for loop
. 我甚至试过 --arg name "$i"
但这也不行。
值是 "虚拟组1","虚拟组2"。
group_list=("dummy group 1", "dummy group 2");
for i in "${group_list[@]//,/}"
do
echo $groupid_json | jq -r '.result[] | select(.name == "$i") | .groupid'
done
但是什么都没有发生.这是我试图过滤的实际json输出。
[
{
"groupid": "92",
"name": "dummy group 1"
},
{
"groupid": "93",
"name": "dummy group 2"
}
]
如果我输入数值,它就会工作
echo $groupid_json | jq -r '.result[] | select(.name == "dummy group 1") | .groupid'
声明 group_list
适当的,它会工作。
group_list=("dummy group 1" "dummy group 2")
for i in "${group_list[@]}"; do
jq -r --arg name "$i" '.[] | select(.name == $name) .groupid' <<< $groupid_json
done