# ネットワークのアドレス
ifconfigでipを表示すると複数のNICのipが取得できます。
例えば下記のような感じです。
この中からifconfigでeth0のNICアドレスを取得するにはどうするのかを考えます。
$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.28.99.150 netmask 255.255.240.0 broadcast 172.28.111.255
inet6 fe80::215:5dff:xxx:xxxx prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:90:90:41 txqueuelen 1000 (Ethernet)
RX packets 742 bytes 149376 (149.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16 bytes 1216 (1.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0のアドレスをgrepする
ifconfigでgerpしてipアドレスだけを取得するには下記のようにします。
ifconfig eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
ifcongit eth0 で取得したいNICの情報を表示させます。
もし別のNICのIPアドレスが取得したければethXXといった感じでナンバーを指定します。
(これで通じるのだろうか。。。。)
その後パイプで結果を渡して正規表現でgrepしてます。
oはマッチしたとこだけ取るオプションでPはPerl形式の正規表現で、
この組み合わせで行の抽出と切り出しがマッチした部分のができますね。