这是 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
像 can 这样的东西应该有效:
awk '$1=="inet"{split($2,a,"."); print a[4]}'
这个想法是只获取第一个单词的行inet
并分割,使用点作为分隔符。
但正如评论中提到的,如果您有多个接口,您应该进行一些过滤