首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对json文件应用条件,获取值并在bash中追加输出

对json文件应用条件,获取值并在bash中追加输出
EN

Stack Overflow用户
提问于 2022-07-15 10:20:04
回答 1查看 59关注 0票数 0

我有一个jq,它从json文件中获取特定值,并将输出追加到文本文件中。文本文件包含例如:docker-virtual.artifactory.com的选项名。

因此,输出应该作为一个RepositoryName:TAG附加到文本文件中现有的输出。

代码语言: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文件中获取类型为docker-image的值,并将值重定向到文件output.txt

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

因此,output.txt文件看起来如下:

代码语言:javascript
复制
redis:6.0.10-alpine3.12
jboss/keycloak:12.0.1

但是我试图将这个输出附加到一个文件中,如下所示:

代码语言:javascript
复制
        docker-virtual.artifactory.com/redis:6.0.10-alpine3.12

如何做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-15 11:25:27

不如:

代码语言:javascript
复制
jq -r '.dependencies[] | select(.type == "docker-image").path' packages.json |  sed 's/.*/docker-virtual.artifactory.com\/&/'> output.txt

注意,这将每次重写output.txt文件,如果您唯一的目的是附加到它,那么使用'>>‘符号,如下所示:

代码语言:javascript
复制
jq -r '.dependencies[] | select(.type == "docker-image").path' packages.json |  sed 's/.*/docker-virtual.artifactory.com\/&/'>> output.txt

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72992497

复制
相关文章

相似问题

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