背景
原始json(test.json
):{ "umask": 1 }
预期更改了json:{ "umask": 2 }
replace_json_str
是一个函数,用于使用1
将2
替换为gnu sed
。
replace_json_str() {
x=$1
sed -i -e 's/\({ "'"$2"'":\)"[^"]*" }/\1"'"$3"'" }/g' $x
}
单元测试:replace_json_str test.json umask 2
问题
运行单元测试后,test.json
没有变为预期,如上所述,为什么?
答案 0 :(得分:0)
我建议:
sed -i 's/(test\.json): { "umask": '"$1"' }/{ "umask": '"$2"' }/' "$x"