Linuxのコマンドラインを使用してJSONファイルを変更したいとします。jqを使用してJSONを変更する
私はこれらの手順を試してみました:
[[email protected]]# INPUT="dsa"
[[email protected]]# echo $INPUT
dsa
[[email protected]]# CONF_FILE=test.json
[[email protected]]# echo $CONF_FILE
test.json
[[email protected]]# cat $CONF_FILE
{
"global" : {
"name" : "asd",
"id" : 1
}
}
[[email protected]]# jq -r '.global.name |= '""$INPUT"" $CONF_FILE > tmp.$$.json && mv tmp.$$.json $CONF_FILE
jq: error: dsa/0 is not defined at <top-level>, line 1:
.global.name |= dsa
jq: 1 compile error
所望の出力:
jq
を使用して
[[email protected]]# cat $CONF_FILE
{ "global" : {
"name" : "dsa",
"id" : 1 } }
ちょっとしたヒント、仕事をするためにrootとしてログインしないでください。 – Kent