方法一

利用grep tr 和cut命令 逐步定位分割, 最终提取ip

[root@localhost ~]# ifconfig ens33|grep netmask
        inet 192.168.48.101  netmask 255.255.255.0  broadcast 192.168.48.255
[root@localhost ~]# ifconfig ens33|grep netmask|tr -s " " |cut -d" " -f3
192.168.48.101

方法二

比较简易,利用awk提取

[root@localhost ~]# hostname -I |awk '{print $1}'
192.168.48.101

方法三

与法2类似,利用awk命令,awk定位netmask所在行 提取第二列信息

[root@localhost ~]# ifconfig ens33|awk '/netmask/{print $2}'
192.168.48.101

方法四

个人感觉法4最不讨喜,利用了正则表达式里的组字符的知识进行检索输出

只显示检索结果 所以需要加上-n p ;组字符()属于正则扩展 所以得有-r

[root@localhost ~]# ifconfig ens33|sed -nr 's/.*inet (.*)  net.*/\1/p'
192.168.48.101

多种方法各不相同,任君选用

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐