3

我有一个包含许多行的文件,包括这样的字符串: blah blah num=12345; 胡说八道

我想找到等号后面的数字大于 1 且没有上限的行。(我不希望一个数字从零开始。)

我从这个表达式开始,它将匹配以任何不是 1 的数字开头的任何数字,它工作正常,我理解它。

grep 'num=[2-9][0-9]*;'

我认为,下一个表达式应该返回任何以 1 开头的具有两个或多个数字的数字,但我却什么也没得到:

grep 'num=1[0-9]+;'

我虽然上面的意思是:必须匹配num=1,然后必须匹配 0-9 之间的东西一次或多次,然后必须匹配. 我哪里错了?

4

1 回答 1

5

使用 grep 您必须转义 + 量词

grep 'num=1[0-9]\+;'

对于您的问题,您可以使用它(如果我理解良好,对于所有数字 >1):

grep 'num=\([2-9]\|1[0-9]\)[0-9]*;'
于 2013-06-19T01:13:00.050 回答