使用awk匹配指定范围内的IP地址

使用awk匹配指定范围内的IP地址

在由换行符分隔的 IP 地址列表中,我尝试仅匹配内部 172 地址(即 172.16.x - 172.31.x)。我尝试了这个,但它不起作用:

awk '$1 ~ /^172.[1-3][6-9]|[0-1]/'

我究竟做错了什么?

答案1

该模式^172.[1-3][6-9]|[0-1]匹配类似的东西

172x39
40

后者是因为您匹配第一个字段中带有 0 或 1 的任何内容。

您需要更改 to.使其\.成为文字点,您需要引入分组并且需要更好的模式。

 ^172\.(1[6-9]|2[0-9]|3[0-1])\.

相关内容