我想从以下输出中检索IP地址。
vmnet1 Link encap:Ethernet
inet addr:192.168.185.1 Bcast:192.168.185.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
我想要获取IP&掩码和结果将是
192.168.185.1
255.255.255.0
谁能告诉我正则表达式?
答案 0 :(得分:0)
我做了第三次尝试,就在这里。
(addr|Mask):([0-1]{1}[0-9]{1,2}|2[0-4][0-9]|25[0-5]|[0-9]{1,2}).([0-1]{1}[0-9]{1,2}|2[0-4][0-9]|25[0-5]|[0-9]{1,2}).([0-1]{1}[0-9]{1,2}|2[0-4][0-9]|25[0-5]|[0-9]{1,2}).([0-1]{1}[0-9]{1,2}|2[0-4][0-9]|25[0-5]|[0-9]{1,2})
它现在只选择有效的IP地址,只要前面有addr或Mask。
答案 1 :(得分:0)
例如:
/addr\:([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*Mask\:([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})/
答案 2 :(得分:0)
尝试以下awk
行:
awk -F'[ :]' '/inet addr/{print $13 "\n" $19}'
答案 3 :(得分:0)
如果您确定您的格式是一致的,那么这样简单的事情应该可以解决问题:
inet addr:([^\sB]*).*Mask:(.*)$