正则表达式从 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
我得到如下字符串。
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.
输出:
80.5
参见:The Stack Overflow Regular Expressions FAQ