分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

shell脚本修改json中某个字段的值

发布时间:2023-09-06 02:19责任编辑:苏小强关键词:jsjsonshell

shell脚本修改json中某个字段的值

  • 思路:通过awk来找到旧数据,然后用sed来替换旧数据

源码

config.json

{ ?"name": "the_name", ?"id": "132869", ?"content_url": "https://hot.example.com/", ?"enable_feature1": "true", ?"enable_feature2": "false"}

config/mode1.sh

#!bin/bashcontent_url_new="https://hot1.example.com/"enable_feature1_new="true"enable_feature2_new="true"

config/mode2.sh

#!bin/bashcontent_url_new="https://hot2.example.com/"enable_feature1_new="false"enable_feature2_new="false"

main.sh

#!bin/bashif [ "$1" != "mode1" -a "$1" != "mode2" ];then ???echo "tip:─┬─────── 您输入参数不对,请重试:" ????echo " ????│─────── ‘mode1‘, 使用config/mode1.sh的配置" ???echo " ????└─────── ‘mode2‘, 使用config/mode2.sh的配置" ???exit 0ficase $1 inmode1) ????. config/mode1.sh;;mode2) ????. config/mode2.sh;;*) ???echo "Usage: sh main.sh [mode1|mode2]" ???exit;esac# 如果要修改的内容在文档中唯一,可以做全局修改content_url_old=$(awk -F"\"" ‘/content_url/{print $4}‘ example.json)sed -e "s@$content_url_old@$content_url_new@g" -i example.json# 如果要修改的内容在文档中不唯一,就需要针对那一行做修改。(例如,这个例子中有两个布尔类型的值)enable_feature1_line=$(awk -F"\"" ‘/enable_feature1/{print NR}‘ example.json) # 记住行号enable_feature1_old=$(awk -F"\"" ‘/enable_feature1/{print $4}‘ example.json) ?# 获取旧数据sed -e "$enable_feature1_line s@$enable_feature1_old@$enable_feature1_new@" -i example.json # 替换所在行的老数据enable_feature2_line=$(awk -F"\"" ‘/enable_feature2/{print NR}‘ example.json) # 记住行号enable_feature2_old=$(awk -F"\"" ‘/enable_feature2/{print $4}‘ example.json) ?# 获取旧数据sed -e "$enable_feature2_line s@$enable_feature2_old@$enable_feature2_new@" -i example.json # 替换所在行的老数据

运行

sh main.sh mode1sh main.sh mode2

其他方案

  • shell中替换json中指定的值 - 矮子爬楼梯 - 博客园
    sh ??sed -i ?‘s/\("enable_feature1":"\).*/\1‘"$enable_feature1_to"‘",/g‘ ??example.json

shell脚本修改json中某个字段的值

原文地址:https://www.cnblogs.com/lyloou/p/9852991.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved