【问题标题】:RegEX to get the required field from a string in shell scriptRegEX 从 shell 脚本中的字符串中获取必填字段
【发布时间】:2020-08-07 13:52:10
【问题描述】:

我得到了一个如下的字符串。

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

【问题讨论】:

  • 到目前为止,您尝试了哪些方法来解决问题?
  • 我是 shell 脚本的新手,尝试过 parse1="$(cut -d':' -f2
  • @Uday :请通过编辑您的问题来添加您的解决方案,而不是作为评论。

标签: regex bash shell parsing sh


【解决方案1】:

使用 bash 和正则表达式:

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

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

输出:

80.5

见:The Stack Overflow Regular Expressions FAQ

【讨论】:

  • 宾果游戏!这行得通,你能解释一下正则表达式吗,它也会帮助其他人理解正则表达式。
  • @Uday:我已经回答完毕了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-28
  • 2018-05-03
  • 1970-01-01
  • 1970-01-01
  • 2018-01-27
  • 1970-01-01
  • 2020-10-16
相关资源
最近更新 更多