作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写要在 linux 设备上运行的 bash 脚本,所以我无权安装 jq,我需要能够使用 native Linux 工具
curl --location --request POST "https://api-mp.meraki.com/api/v1/networks/12345/switch/stacks/12345/routing/interfaces" \
--header "X-Cisco-Meraki-API-Key: 123key" \
--header "Content-Type: application/json" \
--data '{
"name": "L3 int",
"subnet": "192.168.249.0/24",
"interfaceIp": "192.168.249.2",
"multicastRouting": "disabled",
"vlanId": 140,
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
}
}' | sed -n 's|.*"interfaceID":"\([^"]*\)".*|\1|p' > $newVar
服务器的响应返回这个:
{
"interfaceId": "12345",
"name": "PA L3 DR Int",
"subnet": "192.168.249.0/24",
"interfaceIp": "192.168.249.2",
"multicastRouting": "disabled",
"vlanId": 140,
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
}
}
然后我需要能够访问查询字符串参数中的 interfaceID 新变量
最佳答案
你只是弄错了大小写(ID
vs interfaceId
中的 Id
)并且忘记了 之后的空格:
,但你很接近:
$ sed -n 's|.*"interfaceId": *"\([^"]*\)".*|\1|p' file
12345
使用 cat file
代替 curl
命令来展示如何将其保存到变量中,以防您不知道:
$ var=$(cat file | sed -n 's|.*"interfaceId": *"\([^"]*\)".*|\1|p')
$ echo "$var"
12345
关于linux - 使用 Sed 或 awk 从 curl 响应中解析出 JSON 并分配给变量供以后使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63455302/
我是一名优秀的程序员,十分优秀!