如何通过bash从brctl输出中提取网桥brlan0的所有接口名称
brctl show的输出格式设计为同一网桥下的多个接口分行展示,仅第一行会携带网桥名、网桥ID等信息,后续接口行仅保留行首缩进,无网桥名称字段。你执行brctl show | grep brlan0时,grep只会匹配到包含brlan0关键字的第一行,因此只能拿到ath0,漏掉了第二行缩进展示的ath1。
brctl show的输出结构示例:
brlan0 8000.0050f122ffff no ath0 ath1
可用解决方法
方法1:直接指定网桥查询,再提取接口字段(最简洁稳定)
直接执行brctl show brlan0即可输出brlan0的完整信息,若需要仅返回接口名列表,可搭配awk过滤:brctl show brlan0 | awk 'NR>1 {print $NF}'输出结果:
ath0 ath1方法2:从全局网桥列表中匹配brlan0的所有关联接口
如果需要从全量网桥信息中提取,可使用awk同时匹配网桥行和后续的缩进接口行:brctl show | awk '/^brlan0/{print $NF; getline; while($0 ~ /^[[:space:]]+/){print $NF; getline}}'
内容的提问来源于stack exchange,提问作者Rick Sanchez
相关产品推荐
相关产品推荐

