これはifconfigの出力です。 awkを使用して数字78(IPアドレスの4番目のオクテット)を取得したいと思います。
ns33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.78 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::e698:d8b3:62ad:a784 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:0d:32:01 txqueuelen 1000 (Ethernet)
RX packets 2644 bytes 3395138 (3.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 897 bytes 67558 (67.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
答え1
次のことがうまくいくはずです。
awk '$1=="inet"{split($2,a,"."); print a[4]}'
アイデアは、最初の単語を含む行だけを取得し、ドットを区切り文字inet
として分割することです。
ただし、コメントで述べたように、複数のインターフェイスがある場合はフィルタリングを実行する必要があります。