例如,我有以下时间范围来匹配正则表达式的具体数量范围:如何用grep只
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
而且我要的是13到20得出的数字只用grep -E '[1-2] [??]' 是否有可能?
请不要给AWK左右回答我不要求它非常感谢你
例如,我有以下时间范围来匹配正则表达式的具体数量范围:如何用grep只
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
而且我要的是13到20得出的数字只用grep -E '[1-2] [??]' 是否有可能?
请不要给AWK左右回答我不要求它非常感谢你
这应做到:
^(1[1-9]|2[0-6])$
|
意味着正则表达式中交替。你可以把它看作逻辑or
。因此:
1[3-9]|20
意味着随后3,4,5,6,7,8,或9,OR 2后跟0
1这将匹配指明的任何数字(13,14,15,16,17,18,19或20)。
上面可以
1[1-9]|2[0-6]
具体做法是:1,接着1到9 OR 2接着0到6
如波希米亚指示。
^
和$
零宽度断言锚点分别表示“字符串的开始”和“字符串的结束”。它们的确切含义可以根据正则表达式的不同而有所不同,但在egrep
和其他基于行的正则表达式中,它们的含义是相同的。您可能需要使用这些如果在a13b &20-
在行其他字符的可能性。如果你知道,这一数目将是所有这些都是在那个特定的路线,他们是不是绝对必要的。
无论如何都应该使用锚点,因为数字显然可以有2位以上的数字,尽管这是他显示的所有输入,但OP并没有说他的数字都是2位。 –
您需要在双引号(“”)中包含正则表达式。此外,考虑到更广泛的搜索域,如果数字超过2位,则需要在表达式中添加额外的量词。说你要搜索数字范围
1865259000 to 1865361999
正则表达式应该是:
"1865259[0-9]{3}|18652[6-9][0-9]{4}|18653[0-6][0-1][0-9]{3}"
花括号内的数字表示该模式应该完全匹配的次数。所以,
[0-9]{2}
装置2所发生的0位数之间至9
如何'egrep的“1 [3-9] | 20''? –
@Explosion Pills很好解决它,但你可以请解释| |?感谢的人 – Soncire