在unix shell脚本中的任何特殊字符之前提取数字或单词

时间:2017-07-23 11:29:13

标签: bash shell unix

我在变量

中有这样的事情
10> 100 1000= 110

我想从中提取10和1000(在给出任何特殊字符之前的第一个数字)。这里提到的特殊字符可能会改变,所以这适用于任何特殊字符,如>,<,=。

1 个答案:

答案 0 :(得分:1)

您可以将gnu grep-oP(PCRE)正则表达式一起使用:

s='10> 100 1000=110'
grep -oP '[0-9]+(?=[<>=])' <<< "$s"

10
1000

RegEx分手:

  • [0-9]+:匹配一个或多个数字
  • (?=[<>=]):预见断言前面有<>=个字符