2017-03-10 6 views
0

sedコマンドで使用するパラメータを持つ関数を作成しようとしています。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

シェルが単一引用符内の変数を展開しません。試してみてください:

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