端末コマンド| IPアドレスクエリ

端末コマンド| IPアドレスクエリ
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}'

そうでない場合は、次に始まるすべての行を見つけてinet2番目のフィールドを印刷できます。

ifconfig -a | awk '$1=="inet"{print $2}'

しかし、これも127.0.0.1localhostを返します。これを防ぐには、次のようにします。

ifconfig -a | awk '$1=="inet" && $5=="broadcast"{print $2}'

これをテストするMacはありませんが、通常、次のifconfigために使用されなくなりましたip

ip addr show | awk -F'[ /]*' '$2=="inet" && $5=="brd"{print $3}'

おすすめ記事