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