我有一个包含许多行的文件,包括这样的字符串:blah blah num = 12345; blah blah
我想找到等号后面的数字大于1的行,没有上限。 (我不希望数字从零开始。)
我从这个表达式开始,它将匹配以任何不是1的数字开头的任何数字,并且它工作正常,我理解它。
grep 'num=[2-9][0-9]*;'
我认为,下一个表达式 应该返回任何带有两个或更多数字的1开头的数字,但我什么也得不回来:
grep 'num=1[0-9]+;'
我虽然上述意思是:必须匹配 num = 1 ,然后必须匹配0到9之间的一次或多次,然后必须匹配; 。我哪里错了?
答案 0 :(得分:5)
使用grep,你必须转义+量词
grep 'num=1[0-9]\+;'
对于您的问题,您可以使用此功能(对于所有数字> 1,如果我理解的话):
grep 'num=\([2-9]\|1[0-9]\)[0-9]*;'