找到行和那里包含比输入更大的数字的级别

时间:2015-09-07 19:19:37

标签: regex bash

我找不到为给定输入返回的正则表达式,例如1000000000结果214.

以下是我需要正则表达式的文字:

1                 => lvl=101 
10000000000000000 => lvl=400

我需要找到与括号()中的数字相对应的级别(lvl =),该级别大于输入,例如,对于输入1000000000,它将是214,因为1058500959大于1000000000。工作我只限于Bash脚本,我很乐意使用grep -E(“基本”,(BRE)“扩展”(ERE)和“perl”)或类似的标准GNU Linux工具,这些工具预先安装在Ubuntu上

输入可以在

范围内
luigi

非常感谢。

1 个答案:

答案 0 :(得分:0)

Perl救援!

perl -ne 'BEGIN { $trsh = shift }
          ($lvl, $pswd) = /lvl=([0-9]+).*\(([0-9]+)\)$/;
          print "$lvl $pswd\n" and exit if $pswd > $trsh;
         ' 1000000000 input.txt

在正则表达式中,有两个捕获组,匹配的字符串分配给变量$ lvl和$ pswd。如果$ pswd大于$ trsh(从开头的第一个参数分配),则打印详细信息并结束脚本。