我有一些类似 [ 17.440000] eth0: XYZCOMPANY ABC4353 802.11 Wireless Controller 的行
[17.540000] eth1:XYZCOMPANY ABC4353 802.11 无线控制器
[17.640000] eth2:XYZCOMPANY ABC4353 802.11 无线控制器
我需要将 eth0、eth1、eth2 放入 shell 脚本中的变量中。您可以注意到,所有其他行(如 XYZCOMPANY ABC4353)保持不变。但接口名称不断变化。我需要将这些接口名称放入变量中。
谢谢!
答案1
这将显示任意位数的地址eth
:wlan
var=$(dmesg | grep -Eo '(eth|wlan)[[:digit:]]+')
如果不需要,wlan
您可以删除替代项。我不确定驱动eth
程序是否使用十六进制,但如果是,您可以将“digit”更改为“xdigit”,并且您需要允许超过 10 个接口。
答案2
这个解决方案也应该有效:
var=$(dmesg | grep "eth[0-9]: [A-Za-z0-9 ]* 802.11 Wireless Controller" | awk '{ print substr($3,0,5) }')
答案3
也就是说,在你的变量中有类似“eth0: eth1: eth2”的内容
var=`awk /./'{print $3}' lala `
echo $var