杰森。如何在后面加一句话:

ort*_*iga -2 scripting sed text-processing json

以下是我从 json 文件中提取的内容:

 },
   {
    "name": "asdasd",
    "script": "dsad.js",
    "merge_logs": ture,
    "error_file": "/ofghfghgfh.log",
    "out_file": "/fghgfhfgg",
    "cwd": "",
    "autorestart": true,
    "log_date_format"  : "YYYY-MM-DD HH:mm Z",
    "env": {
    "NODE_ENV": "desa",
    "KEY": "VtZOiz0Qc4afFs6j+h2r"
    }
  }]
Run Code Online (Sandbox Code Playgroud)

我想在“KEY”之后添加一个短语:替换它现在拥有的值。

我试过“sed”,但我把它加到了行尾

 sed '/KEY/s/$/1234/g' .json
Run Code Online (Sandbox Code Playgroud)

我需要使用“-i”选项直接更改文件。

Jde*_*eBP 7

sed是这项工作的错误工具。正确的工具之一是jq.

% 猫 wibble.json                               
[
  {
    "name": "asdasd",
    “脚本”:“dsad.js”
  },
  {
    "log_date_format": "YYYY-MM-DD HH:mm Z",
    “环境”:{
            "NODE_ENV": "desa",
            "KEY": "VtZOiz0Qc4afFs6j+h2r"
    }
  }
]
% jq '.[1]."env"."KEY" = "1234"' wibble.json
[
  {
    "name": "asdasd",
    “脚本”:“dsad.js”
  },
  {
    "log_date_format": "YYYY-MM-DD HH:mm Z",
    “环境”:{
      "NODE_ENV": "desa",
      “钥匙”:“1234”
    }
  }
]
% 

它甚至会发现您的 JSON 实际上无效。

% jq 。org.json
解析错误:第 4 行第 23 列的文字无效
%