正则表达式从 shell 脚本中的字符串中获取所需的字段

RegEX to get the required field from a string in shell script

我得到如下字符串。

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脚本变量中。

使用 bash 和正则表达式:

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

这个正则表达式 (:\ ([0-9.]+)%) 描述了一个子字符串,该子字符串包含一个冒号,后跟一个 space,然后至少有一个字符是数字或点 ([0-9.]+ ),然后是百分号。圆括号中匹配的部分取入数组BASH_REMATCH.

的字段1

输出:

80.5

参见:The Stack Overflow Regular Expressions FAQ