我在这里没有找到这个问题,所以我想出了我自己的解决方案:
lshw -c network | grep wireless | grep driver | gawk -F' ' '{ while(++i<=NF){ if($i ~ /driver\=/){ sub("driver=","",$i); print $i; } } }';我需要这个来重启wifi模块,而不知道它的名字,比如:
WIFI_DRIVER=$(lshw -c network | grep wireless | grep driver | gawk -F' ' '{ while(++i<=NF){ if($i ~ /driver\=/){ sub("driver=","",$i); print $i; } } }');
sudo modprobe -r $WIFI_DRIVER && sudo modprobe $WIFI_DRIVER有没有更好、更可靠的解决方案?
发布于 2014-06-20 02:02:27
您可以通过删除grep并将以下两个规则添加到awk脚本的开头来提高效率:
!/wireless/ { next }
!/driver/ { next }而且,您不需要指定一个空格作为字段分隔符,因为这是默认的。
发布于 2014-06-21 19:27:00
我能想到的最简单的方法是perl -lne '/wireless/ && /driver=(.*?)\s/ && print $1'
例如:
sudo lshw -c network | perl -lne '/wireless/ && /driver=(.*?)\s/ && print $1'
iwlwifihttps://stackoverflow.com/questions/24313068
复制相似问题