繁体   English   中英

如何将参数传递到sed命令中

[英]How do I pass parameters into a sed command

我正在尝试制作一个函数,该函数带有在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" }

Shell不会将变量扩展为单引号。 尝试这个:

replace_json_str() {
  x=$1
  sed -i -e 's/\({ "'"$2"'":\)"[^"]*" }/\1"'"$3"'" }/g' $x
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM