<分区>
我正在使用此命令检索连接到接入点的客户端的信号平均功率:
iw dev wlan0 station dump | grep -E 'Station|signal avg':
我得到以下信息:
站点“my_MAC_Address”(在 wlan0 上)
平均信号: -46 dBm
粗体是我用 grep 匹配的,我只想得到匹配后的单词,即 MAC 地址和数字 -46。 我一直在玩 awk 但没有成功。 希望你能帮助我!
<分区>
我正在使用此命令检索连接到接入点的客户端的信号平均功率:
iw dev wlan0 station dump | grep -E 'Station|signal avg':
我得到以下信息:
站点“my_MAC_Address”(在 wlan0 上)
平均信号: -46 dBm
粗体是我用 grep 匹配的,我只想得到匹配后的单词,即 MAC 地址和数字 -46。 我一直在玩 awk 但没有成功。 希望你能帮助我!
最佳答案
iw dev wlan0 station dump | grep -Po '(?<=Station\s|signal avg:\s)[^\s]*'
此正则表达式使用所谓的lookbehind
语法。你可以阅读它here
示例输出:
00:11:22:33:44:55
-40
感谢您为这个答案投票。现在我知道了另一种解决方案:
iw dev wlan0 station dump | grep -Po '(Station\s|signal avg:\s)\K[^\s]*'
这实际上是上述解决方案的简写。 \K
基本上意味着“在发生之前忘记一切”。
关于bash - grep匹配后获取下一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18708849/