bash环境下json键值对转换为Zabbix参数格式的实现方法
Bash环境下JSON转Zabbix参数实现方案
转换规则对齐
- 原JSON内所有键值对的原键名统一转换为大写
- 转换后的键名格式为
#[大写原键名] - 键对应的值、JSON原有嵌套结构、数组、格式排版完全保留,不做任何额外修改
可直接复用的实现命令
使用JSON专用工具jq完成转换,无需拼接冗长杂乱的sed/awk/grep正则组合,避免正则误匹配字符串值内的类似格式文本、处理转义字符出错等问题,命令如下:
# 替换路径为实际的输入输出文件路径即可执行 jq 'walk(if type == "object" then with_entries(.key |= "#[\(ascii_upcase(.))]") else . end)' 原始JSON文件 > 转换后Zabbix参数文件
命令处理逻辑
- 递归遍历JSON全路径下的所有对象,不管嵌套层级多深都能覆盖到键名
- 仅对对象的键名字段做格式转换,完全不修改值的内容
- 自动适配JSON中的转义字符、换行、缩进等格式,转换后输出的JSON完全合法,可直接导入Zabbix使用
内容的提问来源于stack exchange,提问作者dkd6
相关产品推荐
相关产品推荐

