我有一个包含以下文本的 JSON 文件
{"category": "yyy", "id": "xxxyyy", "environment": "fff", "client": "000000", "user": "Alex", "log_time": "xxx", "source_context": null}
Run Code Online (Sandbox Code Playgroud)
我需要找到该文件中的密钥user并将其值替换Alex为XXXX完全相同的大小(Alex= XXXX,Tom= XXX)。我尝试使用sed命令,但无法正确执行。
您不应该使用面向文本的解析器(例如sed. 相反,请使用 JSON 感知解析器,例如jq.
如果您的系统上有此工具,您可以简单地执行以下操作:
jq '.user |= gsub(".";"X")' file
Run Code Online (Sandbox Code Playgroud)
这会将键的所有字符串替换user为相同数量的X字符。
如果你jq不支持gsub,你可以使用这样的东西:
jq '.user |= ([range(0;length)]|.[]="X"|add)' file
Run Code Online (Sandbox Code Playgroud)