首页 > 解决方案 > RegEX 从 shell 脚本中的字符串中获取必填字段

问题描述

我得到了一个字符串,如下所示。

report="Reading trace file coverage/lcov.info Summary coverage rate: lines......: 80.5% (4900 of 6090 lines) functions..: no data" echo The value of variable = $report

添加我只想在其中解析“80.5”并存储在shell脚本变量中。

标签: regexbashshellparsingsh

解决方案


使用 bash 和正则表达式:

[[ "$report" =~ :\ ([0-9.]+)% ]] && echo "${BASH_REMATCH[1]}"

此正则表达式 ( :\ ([0-9.]+)%) 描述了一个子字符串,该子字符串包含一个冒号和一个空格,然后是至少一个数字或点 ( [0-9.]+) 字符,然后是一个百分号。圆括号之间匹配的部分被带入数组 BASH_REMATCH 的字段 1。

输出:

80.5

请参阅:堆栈溢出正则表达式常见问题解答


推荐阅读