我有一个文件,有很多行,包括一个像这样的字符串:blah blahnum=12345; blah blah
我想找到等号后面的数字大于1的行,没有上限。(我不希望数字以零开头)
我从这个表达式开始,它将匹配任何以非1的数字开头的数字,它工作得很好,我理解它。
grep 'num=[2-9][0-9]*;'
下一个表达式应该,我想,返回任何以1开头的有两个或两个以上数字的数字,但是我没有返回任何东西:
grep 'num=1[0-9]+;'
我认为上面的意思是:必须匹配num=1,然后必须匹配0-9之间的数一次或多次,然后必须匹配;。我哪里做错了?
使用grep必须转义+量词
grep 'num=1[0-9]+;'
对于你的问题,你可以使用这个(对于所有数字>1,如果我理解得好):
grep 'num=([2-9]|1[0-9])[0-9]*;'