实验环境:
系统:CentOS 7.2
网卡张数:双网卡
linux文本三剑客之grep
获取ifconfig输出中的IP地址
ifconfig | egrep -o "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>.(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){2}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>"
获取网卡配置文件中的IP地址
egrep -o "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>.(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){2}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>" /etc/sysconfig/network-scripts/ifcfg-eth*
/etc/sysconfig/network-scripts/ifcfg-eth0:10.29.88.57
/etc/sysconfig/network-scripts/ifcfg-eth1:118.190.87.211
优点:
匹配规则通用性强,既可以获取ifconfig输出中的IP地址,也可以获取网卡配置文件里的IP地址,匹配规则不需要做任何修改
缺点:
命令冗长,不容易记忆
linux文本三剑客之sed
获取ifconfig输出中的IP地址
ifconfig | sed -rn 's/^.*inet (.*) net.*/\1/p'
获取网卡配置文件中的IP地址
sed -rn 's/^.*IPADDR=(.*)/\1/p' /etc/sysconfig/network-scripts/ifcfg-eth*
优点:
命令较短,比较容易记忆
缺点:
通用性不强,获取网卡配置文件里的IP地址时匹配规则需要调整较大
linux文本三剑客之awk
获取ifconfig输出中的IP地址
ifconfig | awk '/inet /{print $2}'
获取网卡配置文件中的IP地址
awk -F= '/IPADDR/{print $2}' /etc/sysconfig/network-scripts/ifcfg-eth*
优点: 命令最短,最容易记忆 缺点: 通用性较强,获取网卡配置文件里的IP地址时匹配规则需要调整较小
获取ifconfig输出中的IP地址使用效果如图所示
获取网卡配置文件中的IP地址使用效果如图所示
通过实际案例进行比较,我们不难发现,linux文本三剑客中,awk的实用性和便捷性都是很强的(少量的命令都可以搞定复杂的文本的匹配),所以推荐运维工程师在工作中多用awk,当然请你不要怀疑,我不是awk官方的市场推广人员(..^..)
|