要从ifconfig命令的输出中仅获取MAC地址,可以使用以下命令:
ifconfig ens160 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'
这条命令的作用是:
ifconfig ens160
只显示ens160网卡的配置信息| grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'
使用grep命令进行过滤-o
只显示匹配到的部分-E
允许使用扩展的正则表达式([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}
这个正则表达式匹配MAC地址的格式,由6段十六进制数字组成,每段用:
分隔
所以,上面命令的输出就只会是MAC地址00:0c:29:93:d4:4a
另一种获取方式是使用awk命令:
ifconfig ens160 | awk '/ether/ {print $2}'
这条命令先用ifconfig只显示ens160网卡信息,然后使用awk,当行包含"ether"时,打印该行的第2个字段,也就是MAC地址。