【发布时间】:2016-10-27 23:17:48
【问题描述】:
我有一个 JSON 文件,其中需要删除一个 JSON 对象。 有没有办法只使用 sed 命令删除它? 我的示例文件如下所示。
{
"name": "ABC",
"description": "XYZ",
"versions": {},
"json_class": "Chef::Environment",
"chef_type": "environment",
"default_attributes": {},
"override_attributes": {
"company": {
"xyz": {
"mailer": {
"smtp_host": "Some IP",
"imap_host": "Some Host",
"imap_user": "Some UserId",
"reply_to": "Some User Id",
"outbound_user": "",
"imap_mail_domain": "compute.oraclecloud.com",
"imap_password": ""
},
"logicaldomainname": ""
}
}
}
}
我想使用 sed 命令从文件中删除邮件对象。 请看一下,让我知道是否可以使用 sed 命令。
我这次删除的主要动机是用新的替换这个对象 mailer 对象,以便下次发布另一个 mailer 对象时,我们会将其附加到 xyz JSON 对象中。
预期输出:
{
"name": "ABC",
"description": "",
"version": {},
"json_class": "Chef::Environment",
"chef_type": "environment",
"default_attributes": {},
"override_attributes": {
"Company": {
"XYZ": {
"logicaldomainname": ""
}
}
}
}
【问题讨论】:
-
实际上 jq 由于我们机器中的一些许可规定,我们无法使用。但我们可以使用 awk,
-
sed绝对不合适。如果jq不是一个选项,您应该考虑使用 Perl 或 Python:它们有很棒的 json 库。 -
添加了预期的输出..