RegEx IP范围A类网络

RegEx IP范围A类网络,regex,filter,grep,range,Regex,Filter,Grep,Range,我试图过滤IP范围,这部分工作,因为它还包括一个更高的范围 我只需要从10.0.0.1到10.20.0.254的范围 问题是它还与网络10.x.120.x匹配 以下是我使用的语法: egrep '10.([0-9]{1,3}).([0-1]|[0-9]|20).([0-9]{1,3})' 例如: echo '10.2.120.0' | egrep '10.([0-9]{1,3}).([0-1]|[0-9]|20).([0-9]{1,3})' 它还打印不需要的IP。我想将您展示的样本限制为10

我试图过滤IP范围,这部分工作,因为它还包括一个更高的范围

我只需要从
10.0.0.1
10.20.0.254
的范围

问题是它还与网络
10.x.120.x
匹配

以下是我使用的语法:

egrep '10.([0-9]{1,3}).([0-1]|[0-9]|20).([0-9]{1,3})'
例如:

echo '10.2.120.0' | egrep '10.([0-9]{1,3}).([0-1]|[0-9]|20).([0-9]{1,3})'

它还打印不需要的IP。我想将您展示的样本限制为
10.x.20.x

,请您尝试以下内容

10\.(?:[0-9]|[0-1][0-9]?|20)\.0\.(?:25[0-4]|2[0-4][0-9]|1[0-9][0-9]|[2-9][0-9]|1[1-9]|[1-9])

使用GNU
grep

grep -oP '10\.(?:[0-9]|[0-1][0-9]?|20)\.0\.(?:25[0-4]|2[0-4][0-9]|1[0-9][0-9]|[2-9][0-9]|1[1-9]|[1-9])' Input_file
说明:


刚刚测试过。但它甚至不会触发初始IP(10.2.20.0)。10.2.20.20.0.0.0.0.10.10.10.10.10.10.10.10.10.10.10.10.0.0.0.0.0.10.2.2.2.20.20.0.0.10.0.0.0.0.0.0.0.0.0.10.10.10回音回音回音回音回音回音回音回音回音回音回音回音回音回音回音(10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10(((((((((((:::::::[0-0-1-1[0-1[0-1[0-1[0-1-1[0-1[0-1[0-1[0-1[0-1[0-1[0-1[0-1-1[0-1]?[0-9]?[0-9]| 2(?[0-4][0-9]| 5[0-4]))$'Input_file运行良好,让我知道进展如何,干杯。即使使用grep选项也不行。@Joe,尝试
grep-oP'10\(?:[0-1][0-9]?[20)\.0\。(?:[0-1]?[0-9]?[0-1]?[0-9]?[0-9]。[0-9]| 2(?[0-4][0-9]| 5[0-4])'Input_file\code>尝试一次?它只匹配IP范围为10.x,10.18.0.0.x以下任何东西似乎都不工作。10.18.0.0.x以下任何东西似乎都不工作。请包括一些有效和无效的公共服务使用服务,请包括一些有效和无效的公共服务使用该服务,<代码>^10。((0.10)10。{10(0.0)2}([1-9[1-9][1-9]1-10.[1-10)2}((2)2}([1-2-2-2-2[1-9[1-1-1-9][1-1-1-1-9][1-9]1-1-1-1-1-9];[1-1-1-9[1-9]1-1-1-1-9]1-1-1-9]1-1-1-1-9]1-1-1-9]1-9][1[1-1-9]1-1-1-1-9]1(\.([1-9]?\d |[12]\d\d)){2}$
10\.(?:[0-9]|[0-1][0-9]?|20)\.0\.                         
##Matching 10 dot and range from 0 to 20 here, followed by 0. here.
(?:25[0-4]|2[0-4][0-9]|1[0-9][0-9]|[2-9][0-9]|1[1-9]|[1-9])  
##Matching from 1 to 254 range here in a non-capturing group.