You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Shell脚本从ifconfig输出中提取ens3的HWaddr值

提取ens3网卡的HWaddr(MAC地址)

没问题,这是Shell脚本里很常见的需求,我给你几个实用的方法,都能结合ifconfig和grep快速拿到目标MAC地址:

方法1:用grep的Perl正则精准匹配(推荐)

直接过滤ens3网卡的输出,用grep的-oP选项提取MAC地址:

ifconfig ens3 | grep -oP 'HWaddr \K.*'

解释:

  • ifconfig ens3:只输出ens3网卡的信息,避免处理其他网卡的内容,更高效
  • -o:让grep只输出匹配到的部分,而不是整行
  • -P:启用Perl兼容正则表达式
  • HWaddr \K.*:\K会忽略前面匹配到的HWaddr 字符串,只保留后面的MAC地址部分

方法2:grep配合cut分割字段

如果你的系统不支持Perl正则(比较少见),可以用cut来分割字段:

ifconfig ens3 | grep HWaddr | cut -d' ' -f10

解释:

  • grep HWaddr:定位到包含HWaddr的那一行
  • cut -d' ' -f10:以空格为分隔符(连续空格会被自动合并),提取第10个字段,也就是MAC地址

在脚本里使用示例

把提取到的MAC地址存到变量里,方便后续使用:

#!/bin/bash
# 提取ens3的MAC地址
ens3_mac=$(ifconfig ens3 | grep -oP 'HWaddr \K.*')

# 验证结果
if [ -n "$ens3_mac" ]; then
    echo "ens3网卡的HWaddr是: $ens3_mac"
else
    echo "无法获取ens3网卡的HWaddr,请检查网卡名称或权限"
fi

注意事项:

  • 有些系统里ifconfig可能在/sbin目录下,如果脚本执行时找不到命令,试试用绝对路径/sbin/ifconfig
  • 确保执行脚本的用户有读取网卡信息的权限(一般普通用户需要加sudo,或者以root身份执行)

内容的提问来源于stack exchange,提问作者SyntaxSage

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:13:02