ifconfig -a | grep 10.16
inet 10.16.x.xx netmask 0xffffff00 broadcast 10.16.x.xxx
inet 10.16.x.xx netmask 0xffffff80 broadcast 10.16.x.xxx
私は数字を次に置き換えました。x
私の目標は、inet IP以外のすべてを削除することです。したがって、次のように表示されます。
10.16.x.xx
10.16.x.xx
可能ですか?コマンドをできるだけ単純に保ち、複数のオペレーティングシステム(10.9/10.10/10.11)で動作するようにします。
ベストアンサー1
さて、あなたのIPが次から始まることを知っているなら10.16
:
ifconfig -a | grep -oP '\b10\.16\.[0-9.]+\b'
grep
またはサポートしていない場合、-P
または-o
:
ifconfig -a | awk '/10\.16\./ && /inet/{print $2}'
そうでない場合は、次に始まるすべての行を見つけてinet
2番目のフィールドを印刷できます。
ifconfig -a | awk '$1=="inet"{print $2}'
しかし、これも127.0.0.1
localhostを返します。これを防ぐには、次のようにします。
ifconfig -a | awk '$1=="inet" && $5=="broadcast"{print $2}'
これをテストするMacはありませんが、通常、次のifconfig
ために使用されなくなりましたip
。
ip addr show | awk -F'[ /]*' '$2=="inet" && $5=="brd"{print $3}'