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

Bash中提取字符串指定字段值失败,寻求解决方法

解决Bash提取字符串特定属性值的问题

你的awk命令出错是因为匹配模式写法错误,awk的匹配规则需要用斜杠/包裹目标字符串,而不是双引号。

正确的awk写法

subStr=$(echo "$data" | awk '/prop2:/ {print $2}')

这个命令会匹配包含prop2:的行,awk默认以空白字符(不管空格数量)分割字段,所以$2就是对应的值v2。

用grep提取的方法

如果想用grep实现,可借助Perl兼容正则:

subStr=$(echo "$data" | grep -oP 'prop2:\s+\K\S+')
  • -o:只输出匹配的内容片段
  • -P:启用Perl正则语法
  • \s+:匹配prop2:后面的任意数量空白字符
  • \K:忽略前面的匹配部分(即不输出prop2:和空格)
  • \S+:匹配后续的非空白字符(也就是目标值v2)

执行完任意一种命令后,echo $subStr都会输出v2。

内容的提问来源于stack exchange,提问作者Martin de Jong

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:22:08