如何提取 IP 地址中的最后一个数字序列(使用 Linux)

如何提取 IP 地址中的最后一个数字序列(使用 Linux)

我想根据 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。因此,此类“快速”脚本在许多系统中都会失效。

相关内容