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

如何用awk/sed提取curl响应中的版本号?原命令无效求助

正确提取版本号的方法

你的awk命令没生效是因为分隔符选得不对,目标字符串里的"是HTML转义的双引号,原分隔符无法命中有效拆分点,导致输出整行内容。以下是两种可行的解决方法:

方法一:使用sed提取

curl 'https://internal-url.com/about' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36' \
| sed -n 's/.*"version":"\([0-9.]*\)".*/\1/p'
  • 逻辑:用-n抑制默认输出,正则匹配包含version键值对的片段,用\([0-9.]*\)捕获版本号(数字和点的组合),最后用\1输出捕获到的内容。

方法二:使用awk提取

方式1:正则匹配捕获

curl 'https://internal-url.com/about' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36' \
| awk '/"version"/ {match($0, /"version":"([0-9.]+)"/, arr); print arr[1]}'
  • 逻辑:先筛选包含version关键词的行,用match函数匹配正则并将捕获的版本号存入数组arr,最后输出数组的第一个元素。

方式2:分隔符拆分

curl 'https://internal-url.com/about' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36' \
| awk -F'"version":"|"' '{if ($2 != "") print $2}'
  • 逻辑:将字段分隔符设为"version":"或",版本号会落在第二个字段位置,判断不为空后输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 21:43:12