示例1:
命令:
ifconfig | sed -e 's/^.*\(inet\|inet6\|ether\) \([^ ]*\).*$/\1 \2/;t;d'
执行结果:
inet 10.10.33.155
inet6 fe80::10f2:a610:2fa:8752
inet6 2001:250:4000:2000::d70
ether 00:0c:29:ce:c1:2f
inet 127.0.0.1
inet6 ::1
inet 192.168.122.1
ether 52:54:00:ec:09:84
示例2:
命令:
ip addr | sed -e 's/^.*\(inet\|ether\|inet6\) \([^ /]*\).*$/\1 \2/;t;d'
执行结果:
inet 127.0.0.1
inet6 ::1
ether 00:0c:29:ce:c1:2f
inet 10.10.33.155
inet6 2001:250:4000:2000::d70
inet6 fe80::10f2:a610:2fa:8752
ether 52:54:00:ec:09:84
inet 192.168.122.1
ether 52:54:00:ec:09:84
解析:
结果中 inet就是ipv4,inet6是ipv6,ether就是mac,sed脚本命令中s是寻找后面正则表达式的匹配并分组替换为匹配组的组1加空格加组2的内容,并在匹配成功后删除到匹配模板的中间行,保留查找替换成功的行,输出内容就是前面的示例,根据需要可以自行修改查询命令