当前位置: > Linux命令 >

grep正则表达式查找特定ip地址的方法

时间:2014-09-06 01:12来源:linux.it.net.cn 作者:it
分享下grep正则表达式查找指定的ip地址的方法,grep命令与正则表达式结合匹配ip地址。

linux下文件查找,没有grep命令是不行的。
在grep命令中使用正则表达式从一个文件中匹配到特定的IP地址。

以下正则表达式将会匹配IPV4的地址。

正则表达式匹配IP地址:

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

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

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

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

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

以上正则表达式并不能匹配真正的IPv4地址。

可以使用以下正则表达式来匹配:
 

"(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地址:
 

[root@jbxue ~]# 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@jbxue ~]# echo 192.168.1.234 > test1
[root@jbxue ~]# 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@jbxue ~]#

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

以上分享了grep正则表达式查找特定ip地址的方法与例子,希望对大家有所帮助。

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容