You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下删除JSON文件中指定IP对应的targets完整条目

实现方案

Linux环境下处理结构化JSON数据最成熟的工具是jq,轻量且原生支持JSON结构解析,无需自己写逻辑处理字符串匹配,完全避免格式错乱问题。

1. 安装jq(系统未预装时执行)

  • Debian/Ubuntu 系列:sudo apt update && sudo apt install -y jq
  • RHEL/CentOS/Fedora 系列:sudo dnf install -y jq 或 sudo yum install -y jq

2. 核心处理命令

假设你的原始JSON文件名为targets.json,需要删除的IP为172.17.1.51:

仅输出处理后结果(不修改原文件,适合校验效果)

jq '[.[] | select(.targets[] != "172.17.1.51")]' targets.json

直接修改原文件(兼容所有jq版本的稳妥写法)

jq '[.[] | select(.targets[] != "172.17.1.51")]' targets.json > tmp.json && mv tmp.json targets.json

3. 参数化写法(适合嵌入脚本动态调用)

如果需要把待删除IP作为变量传入,使用--arg参数避免引号嵌套问题:

# 定义要删除的IP变量
DEL_IP="172.17.1.51"
# 执行过滤并修改原文件
jq --arg target_ip "$DEL_IP" '[.[] | select(.targets[] != $target_ip)]' targets.json > tmp.json && mv tmp.json targets.json

命令逻辑说明

  • 外层[]表示将过滤后的结果重新组装为数组,和原始格式保持一致
  • .[]遍历原始JSON顶层数组的每一条数据
  • select(.targets[] != "待删除IP")是过滤规则:只要当前条目的targets数组包含待删除IP,就直接排除该整条数据,完全匹配你的需求

内容的提问来源于stack exchange,提问作者user13539846

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 07:09:03