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