从dmesg行获取接口名称

我有一些像[17.440000] eth0:XYZCOMPANY ABC4353 802.11无线控制器

[17.540000] eth1:XYZCOMPANY ABC4353 802.11无线控制器

eth0:XYZCOMPANY ABC4353 802.11无线控制器[17.640000]

我需要在shell脚本中将eth0,eth1,eth2变成一个variables。 正如你可以注意到XYZCOMPANY ABC4353的所有其他行保持不变。但接口名称不断变化。 我需要将这些接口名称变成一个variables。

谢谢!

这将显示任意数字的ethwlan地址:

 var=$(dmesg | grep -Eo '(eth|wlan)[[:digit:]]+') 

如果你不需要wlan你可以删除备用。 我不知道如果eth驱动程序使用hex,但是你可以改变“数字”为“xdigit”,如果它和你需要允许超过10个接口。

这个解决scheme也应该工作:

var=$(dmesg | grep "eth[0-9]: [A-Za-z0-9 ]* 802.11 Wireless Controller" | awk '{ print substr($3,0,5) }')

这就是在你的variables中有一些像“eth0:eth1:eth2”的东西

 var=`awk /./'{print $3}' lala ` echo $var