免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1329 | 回复: 1

[文本处理] jq用法求助 [复制链接]

论坛徽章:
0
发表于 2017-08-24 11:01 |显示全部楼层
原文件
{
   "request_id": "6d3e925d23084caca393f40875c3cdc8",
   "result": true,
   "data": [
     {
       "ModuleID": "36",
       "CreateTime": "2017-08-17 14:51:58",
       "ApplicationID": "5",
       "SetID": "11",
       "Operator": "",
       "Region": "",
       "InnerIP": "192.168.1.15",
       "AssetID": "",
       "SetName": "空闲机池",
       "BakOperator": "",
       "HostID": "1",
       "HardMemo": "",
       "Status": "",
       "HostName": "",
       "IdcName": "",
       "OSName": "",
       "Source": "1",
       "ModuleName": "CAS",
       "DeviceClass": "",
       "ApplicationName": "【正式】云启",
       "OuterIP": ""
     },
     {
       "ModuleID": "37",
       "CreateTime": "2017-08-17 14:53:47",
       "ApplicationID": "5",
       "SetID": "11",
       "Operator": "",
       "Region": "",
       "InnerIP": "192.168.1.15",
       "AssetID": "",
       "SetName": "空闲机池",
       "BakOperator": "",
       "HostID": "2",
       "HardMemo": "",
       "Status": "",
       "HostName": "",
       "IdcName": "",
       "OSName": "",
       "Source": "1",
       "ModuleName": "Authcenter",
       "DeviceClass": "",
       "ApplicationName": "【正式】云启",
       "OuterIP": ""
     },
     {
       "ModuleID": "38",
       "CreateTime": "2017-08-17 14:54:27",
       "ApplicationID": "5",
       "SetID": "11",
       "Operator": "",
       "Region": "",
       "InnerIP": "192.168.1.15",
       "AssetID": "",
       "SetName": "空闲机池",
       "BakOperator": "",
       "HostID": "3",
       "HardMemo": "",
       "Status": "",
       "HostName": "",
       "IdcName": "",
       "OSName": "",
       "Source": "1",
       "ModuleName": "DCMP",
       "DeviceClass": "",
       "ApplicationName": "【正式】云启",
       "OuterIP": ""
     }
   ],
   "code": "00",
   "message": ""
}


想通过ModuleName取出IP
[root@DEN 123]# jq .data 22 |jq ".[] | select(.ModuleName=="DCMP") | .InnerIP"
error: DCMP is not defined
.[] | select(.ModuleName==DCMP) | .InnerIP
                           ^^^^
1 compile error
[root@DEN 123]#

说我未定义



jq .data 22 |jq ".[] | .InnerIP, .ModuleName" |xargs -n2 |grep CAS |awk  '{print $1}'   我想到的一种方式  感觉比较土



论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2017-08-24 12:13 |显示全部楼层
回复 1# mir620

jq ".[] | select(.ModuleName=="DCMP") | .InnerIP"

change to

jq '.[] | select(.ModuleName=="DCMP") | .InnerIP'


$ jq .data 22 | jq '.[] | select(.ModuleName=="DCMP") | .InnerIP'
"192.168.1.15"

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP