GNU sed json替换功能问题

时间:2017-03-12 13:52:59

标签: json awk sed

背景

原始json(test.json):{ "umask": 1 }

预期更改了json:{ "umask": 2 }

replace_json_str是一个函数,用于使用12替换为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没有变为预期,如上所述,为什么?

1 个答案:

答案 0 :(得分:0)

我建议:

sed -i 's/(test\.json): { "umask": '"$1"' }/{ "umask": '"$2"' }/' "$x"