我找不到为给定输入返回的正则表达式,例如1000000000结果214.
以下是我需要正则表达式的文字:
1 => lvl=101
10000000000000000 => lvl=400
我需要找到与括号()中的数字相对应的级别(lvl =),该级别大于输入,例如,对于输入1000000000,它将是214,因为1058500959大于1000000000。工作我只限于Bash脚本,我很乐意使用grep -E(“基本”,(BRE)“扩展”(ERE)和“perl”)或类似的标准GNU Linux工具,这些工具预先安装在Ubuntu上
输入可以在
范围内luigi
非常感谢。
答案 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(从开头的第一个参数分配),则打印详细信息并结束脚本。