json - json 元素值替换为 shell 脚本中的变量
问题描述
我有一个带有主机列表的模板 json 文件作为示例。相同的替换为由 shell 脚本生成的动态值。
示例 rds.json
{
"lob": "coaching",
"function": "badminton",
"hosts": [
"node1.rds.sports.com",
"node2.rds.sports.com",
"node3.rds.sports.com"
],
"adminserver": "node1.rds.sports.com",
"user_name": "coach",
"sudo_type": "sudo",
"group_name": "admin"
}
echo $myHosts
:
"host1.rds.sports.com", "host2.rds.sports.com", "host3.rds.sports.com", "host4.rds.sports.com", "host5.rds.sports.com", "host6.rds.sports.com", "host7.rds.sports.com", "host8.rds.sports.com"
$myHosts 的值应该在 hosts 元素键中被替换。
期望的输出:
{
"lob": "coaching",
"function": "badminton",
"hosts": [
"host1.rds.sports.com",
"host2.rds.sports.com",
"host3.rds.sports.com",
"host4.rds.sports.com",
"host5.rds.sports.com",
"host6.rds.sports.com",
"host7.rds.sports.com",
"host8.rds.sports.com"
],
"adminserver": "hosts1.rds.sports.com",
"user_name": "coach",
"sudo_type": "sudo",
"group_name": "admin"
}
解决方案
I'm going to assume the contents of myHosts
is a valid JSON array body.
jq --argjson hosts "[$myHosts]" '.hosts = $hosts | .adminserver = .hosts[0]' rds.json
推荐阅读
- aws-appsync - 在 AppSync 解析器模板中验证数组输入
- java - 问题 'constructor Handler()' 已弃用。在 Java 中已弃用
- entity-framework-core - ASP.NET Core MVC 中的导航集合返回空
- layout - 选择图形布局:强制导向或 Sugiyama 或其他
- c++ - Android ndk-build 错误:未定义符号:aligned_alloc
- node.js - 在猫鼬中创建新文档的问题
- r - 在 R 中使用 ginv 函数而不是求解函数是否有任何限制
- django-models - 依赖于另一个字段的 Django 自动递增字段
- sql - 从其他文件导入文件中的 SQL 命令
- docker - 无法使用默认的“测试”帐户登录