首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对json文件应用条件并获取linux中存在的键值的值。

对json文件应用条件并获取linux中存在的键值的值。
EN

Stack Overflow用户
提问于 2022-07-13 10:04:34
回答 1查看 44关注 0票数 0

我有包含码头图像详细信息的packages.json文件,如下所示:

代码语言:javascript
复制
  "dependencies": [
{
  "name": "powershell-core",
  "type": "zip",
  "path": "Dependencies",
  "filename": "PowerShell-Core-6.2.3-win-x64.msi"
},
{
"name": "redis",
"type": "docker-image",
"path": "redis:6.0.10-alpine3.12",
"filename": ""
},
{
  "name": "keycloak",
  "type": "docker-image",
  "path": "jboss/keycloak:12.0.1",
  "filename": ""
},
]

JSON数据是半结构化的,所有的数据都不一样。在这里,我试图获取特定的数据,比如"path",条件是如果它是"dependencies"下的"type": "docker-image",然后获取它。

我试过这样的方法:

代码语言:javascript
复制
$ jq '.dependencies[2].path' packages.json

产出:

代码语言:javascript
复制
"redis:6.0.10-alpine3.12"

因此,如何从packages.json文件中获取具有"type"作为"docker-image""dependencies"的所有"path",并将其保存在一个文件中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-13 10:08:44

使用select筛选数组:

代码语言:javascript
复制
jq -r '.dependencies[] | select(.type == "docker-image").path' packages.json

-r移除路径周围的双引号。

使用重定向将输出保存到文件:

代码语言:javascript
复制
... > output
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72964439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档