0

我想从以下输出中检索 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

谁能告诉我正则表达式?

4

4 回答 4

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。

于 2012-10-12T11:58:50.503 回答
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})/
于 2012-10-12T11:59:05.333 回答
0

尝试以下awk行:

awk -F'[ :]' '/inet addr/{print $13 "\n" $19}'
于 2012-10-12T12:05:31.007 回答
0

如果您确定您的格式是一致的,那么像这样简单的事情应该可以解决问题:

inet addr:([^\sB]*).*Mask:(.*)$
于 2012-10-12T12:08:04.277 回答