4

ファイルを開こうとしていて、ファイルを調べて、値に基づいて値を変更し、これをファイルまたは var に渡します。以下はJSONの例です

{
     "Par": [
         {
             "Key": "12345L",
             "Value": "https://100.100.100.100:100",
             "UseLastValue": true
         },
         {
             "Key": "12345S",
             "Value": "VAL2CHANGE",
             "UseLastValue": true
         },
         {
             "Key": "12345T",
             "Value": "HAPPY-HELLO",
             "UseLastValue": true
         }
     ],
      "CANCOPY": false,
      "LOGFILE": ["HELPLOG"]
 }

私はjqを使用しており、オブジェクトグループを分離して値を変更することに成功しています。

 cat jsonfile,json | jq '.Par | map(select(.Value=="VAL2CHANGE")) | .[] | .Value="VALHASBEENCHANGED"'

これは与える

         {
             "Key": "12345S",
             "Value": "VALHASBEENCHANGED",
             "UseLastValue": true
         }

達成したいのは、変更された値で完全な JSON 出力を保持することです

{
     "Par": [
         {
             "Key": "12345L",
             "Value": "https://100.100.100.100:100",
             "UseLastValue": true
         },
         {
             "Key": "12345S",
             "Value": "VALHASBEENCHANGED",
             "UseLastValue": true
         },
         {
             "Key": "12345T",
             "Value": "HAPPY-HELLO",
             "UseLastValue": true
         }
     ],
      "CANCOPY": false,
      "LOGFILE": ["HELPLOG"]
 }

IE

jq '.Par | map(select(.Value=="VAL2CHANGE")) | .[] | .Value="VALHASBEENCHANGED"' (NOW PUT IT BACK IN FILE)

また

ファイルを開き、ファイルを調べ、変更するファイルの値を変更し、これを変更して、これをファイルまたは画面に出力します

追加するには、json ファイルには、これを作成するときに一度だけ探している値のみが含まれます。他の値を変更する必要がある場合は、別の名前を付けます。

4

2 に答える 2