我想根据 ifconfig 命令的结果提取 IP 地址的最后几位数字。
ifconfig 通常包含一大堆输出,所以我不太确定如何获取我想要的数字。
例子:
root@my-pc:~/scripts# ifconfig eth0
eth0 Link encap:Ethernet HWaddr b8:44:ca:43:d5:99
inet addr:192.168.1.15 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:33685377 errors:0 dropped:0 overruns:0 frame:0
TX packets:29363607 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3918498595 (3.6 GiB) TX bytes:3888643193 (3.6 GiB)
我想从 IP 地址 192.168.1.15 获取数字 15
非常感谢 :)
ps. 不太清楚该用什么标签,所以提前致歉
答案1
ip -o addr show dev "eth0" | awk '$3 == "inet" {print $4}' | sed -r 's!/.*!!; s!.*\.!!'
(请勿使用ifconfig
– 使用ip addr
。)
另外,不要忘记接口可以有多种的IP 地址;并非所有地址都是/24
's;并非所有地址都以 开头192.168.1.
;并非所有地址都是 IPv4。因此,此类“快速”脚本在许多系统中都会失效。