我正在尝试创建一个在sed命令中使用参数的函数。
replace_json_str() {
x=$1
sed -i -e 's/\("$2":"\)[^"]*\("\)/\$3\2/g' $x
}
原json:{ "USER":"root" }
用法:replace_json_str test.json USER pi
预期json:{ "USER":"pi" }
答案 0 :(得分:0)
shell不会用单引号扩展变量。试试这个:
replace_json_str() {
x=$1
sed -i -e 's/\({ "'"$2"'":\)"[^"]*" }/\1"'"$3"'" }/g' $x
}