json - JQ - 用空格过滤值
问题描述
我想选择一个值并过滤它。但它有一个空间。我正在尝试使用 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
推荐阅读
- arrays - Python '==' 运算符给出错误结果
- angular - 错误错误:未捕获(承诺中):TypeError:无法读取未定义的属性“id”
- sql-server - 使用 SSDT 的 SQL Server 架构和数据比较
- javascript - 如何在 TypeScript React 组件中返回字符串或 JSX 元素?
- javascript - 为什么selly api 只显示我拥有的+400 中的20 个产品?
- python - 按日期和条件不匹配结果汇总 Python pandas 列
- r - R for 循环只通过一个向量
- python - 删除字母 S 后需要在输出中获取 4 个 URL 但只获取最后一个 URL
- css - CSS 样式:如何在 React 中重新创建 iOS 14 段控件?
- css - CSS动画,一些动画完成,然后按顺序重复