linux - 需要删除特定 block

标签 linux perl shell

来自文件,

====================================
{
        "id": "ffc131ff-1793-4109-940f-5b537f7061cf",
        "securityResourceId": "48d0eeff-690d-4c2c-b6f9-9b25315f9ca3",
        "name": "Dev-bpimdmgr-idev3-01",
        "active": true,
        "licensed": true,
        "licenseType": "AUTHORIZED",
        "status": "ONLINE",
        "tags": []
    },
    {
        "id": "82db2888-7a2f-48fe-bc25-26a5e28bb340",
        "securityResourceId": "5a437865-6ced-402e-ac47-dd38191e5696",
        "name": "obiee-cmixdmgr-nprd3-01",
        "active": true,
        "licensed": true,
        "licenseType": "AUTHORIZED",
        "status": "ONLINE",
        "tags": [
            {
                "id": "fbf62944-a8a4-4a22-8e75-cd8d88eacaff",
                "name": "obiee-tag",
                "color": "#32cd32",
                "description": "obiee tag for version import",
                "objectType": "Agent"
            }
        ]
    },

我想删除标签[] block ,包括该 block 内的位置。通过perl或shell脚本

问候, 卡莱亚拉桑

最佳答案

只需使用 JSON模块:

use JSON qw{ from_json to_json };

my $struct = from_json("[$input]");
delete $_->{tags} for @$struct;
print to_json($struct);

关于linux - 需要删除特定 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28943818/

相关文章:

linux - 解析日志以查找每个用户的所有源 IP 的最快方法

linux - 有人能解释一下为什么 awk 的 sub()/gsub() 是这样工作的吗?

sql-server - 使用 Ubuntu,如何从 CPAN 安装 DBD::Sybase?

linux - 是否有一个程序可以像 printf 一样以整个文件作为输入?

linux - Bash 命令只移动一些文件?

java - 启动 jetty 服务器时出现 NoClassDefFoundError

linux - shell 脚本运行时间过长时的通知

linux - 验证文件的 SHA-256 总和,如果不符合预期则退出脚本

perl - 我如何从 Perl 的 STDOUT 取消别名?

perl - 在不使用 require 的情况下确定模块的绝对路径