Grep正则表达式:如何查找某个特定的IP地址

Grep osetc 2488℃ 0评论

下面会举几个在grep命令中使用正则表达式从一个文件中匹配到特定的IP地址。下面的正则表达式将会匹配IPV4的地址。

正则表达式匹配IP地址:

使用下面的正则表达式来匹配IPV4的地址,先来匹配从0.0.0.0到999.999.999.999的模式。

1
"([0-9]{1,3}[\.]){3}[0-9]{1,3}"

示例:使用grep命令来查找匹配特定的地址

1
2
3
4
5
6
$ grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" filename

[root@devops ~]# echo 000.333.222.444 >test1
[root@devops ~]#
[root@devops ~]# grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" test1
000.333.222.444

上面的正则表达只是简单的匹配了特定的类似于ip地址的传,但它不能匹配真正的IPv4地址。可以通过下面的正则表达式来匹配.

1
2
3
"(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.

(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"

通过grep命令匹配文件中的IPv4地址

1
2
3
4
5
6
7
8
9
[root@devops ~]# grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-

4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" test1
[root@devops ~]# echo 192.168.1.234 > test1
[root@devops ~]# grep -E -o "
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-

4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" test1
192.168.1.234
[root@devops ~]

#

其中:-E选项表示使用grep扩展的正则表达式
-o选项是只显示匹配到的字符串

前面的文章里有更多的关于grep中正则表达式的用法。

转载请注明:osetc.com » Grep正则表达式:如何查找某个特定的IP地址

喜欢 (1)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址