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

如何在Zabbix中用JSONPath提取cmdline中tnslsnr后的字符串?

提取cmdline中tnslsnr后的第一个参数

针对你的需求,这里提供两种基于jq的实现方式,直接处理JSON数据提取目标内容:

方法1:分割字符串取元素

利用split按空白字符分割cmdline内容,直接取tnslsnr后的第一个参数:

jq -r '$..cmdline | .[] | split(/\s+/) | .[1]' your_json_file.json

说明:

  • split(/\s+/):按任意数量的空白字符分割字符串,避免多空格导致的空元素问题
  • .[]:遍历提取到的cmdline数组(因为$..cmdline返回数组)
  • .1:取分割后数组的第二个元素,对应tnslsnr后的第一个参数

方法2:正则匹配提取

用正则精准匹配tnslsnr后的非空白字符串,适用性更强(比如tnslsnr路径变化不影响):

jq -r '$..cmdline | .[] | capture("tnslsnr\\s+(\\S+)").[0]' your_json_file.json

说明:

  • capture("tnslsnr\\s+(\\S+)"):匹配tnslsnr后面的任意空白,再捕获后续的非空白字符(即目标参数)
  • .0:取捕获到的第一个分组内容,就是你需要的字符串

测试示例

用你提供的JSON数据测试,两种方法都会输出:

TEST_HOM

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 06:46:13