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

私は3回目の試みをしました、ここにあります。

(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})

その前にaddrまたはMaskがある限り、有効なIPアドレスのみを選択するようになりました。

于 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 に答える