1、用sed命令获取地址192.168.52.20
ifconfig ens33|sed -n '2p'|sed 's#^.*inet ##g'|sed 's# netmask.*$##g'
思路为:先取第二行,然后去掉要取的关键字前面的字符,然后去掉后面的字符,(替换为空)就可得出
注意:sed命令中只有第一个和第二个#之间可以用正则表达式
2、sed命令第二种方法
ifconfig ens33|sed -n '2s#^.*net ##gp'|sed 's# netmask.*$##g'
s前面的2表示第二行,省去了一个管道符,并且最后一个sed可以不用-n参数,因为前面sed过滤之后只剩下一行了,同时取消后面的参数p,如果只取消-n不取消p,会多打印一行。
3、sed命令第三种方法
sed后向引用
sed -n 's#()()#\1\2#gp' file 当sed命令前面匹配部分用小括号的时候,第一个小括号内容可以用后面的\1输出,第二个小括号内容可以用后面的\2输出
ifconfig ens33|sed -nr '2s#^.*inet (.*) netmask.*$#\1#gp'
#中间的小括号需要转义,所以用sed -nr 或者不用r,里面用\转义
4、直接从网卡文件获取
grep IPADDR /etc/sysconfig/network-scripts/ifcfg-ens33
grep IPADDR /etc/sysconfig/network-scripts/ifcfg-ens33|cut -d= -f2 其中-d=为指定分隔符为=,-f2为提取第二个字段