awk - 从 iwconfig 获取以 % 为单位的信号质量
问题描述
第一篇寻求帮助....我正在尝试从 iwconfig 命令中获取以 % 为单位的信号质量...我从这个命令开始,但它返回文本“信号值”
iwconfig wlan0 | grep Quality | awk -F '=|/|=[ ]' '{print $2,$3}'
70 70 Signal level
我只想得到“100%”的结果
wlan0 IEEE 802.11 ESSID:"SKYNET"
Mode:Managed Frequency:2.412 GHz Access Point: AC:84:C9:CD:79:E0
Bit Rate=72.2 Mb/s Tx-Power=31 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=68/70 Signal level=-42 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:51 Invalid misc:0 Missed beacon:0
解决方案
以下是 (68/70)*100。使用split()
68 存储在,a[2]
而 70 存储在a[3]
iwconfig wlan0|awk '/Link Quality/{split($2,a,"=|/");print (a[2]/a[3])*100"%"}'
97.1429%
对于整数结果:
iwconfig wlan0|awk '/Link Quality/{split($2,a,"=|/");print int((a[2]/a[3])*100)"%"}'
97%
或者只是使用printf
:
iwconfig wlan0|awk '/Link Quality/{split($2,a,"=|/");printf "%d%s\n", (a[2]/a[3])*100, "%"}'
97%
PS:使用有问题的 OP 提供的输出进行测试。
推荐阅读
- javascript - 如何获取从具有 Object Promise 格式的异步函数接收到的值
- python-3.x - 在 Python 3 中除以 pandas DataFrame 中的 2 个整数列返回舍入整数而不是浮点数
- php - 托管 - 与以前的项目相同的错误
- node.js - 服务器端缓存使用什么状态码?
- laravel-8 - Laravel 8 中的通知系统
- javascript - AD FS OAuth - 隐式授予流程 - 如何通过跳过 Home Realm Discovery 页面以静默方式更新令牌
- reactjs - AEM 6.5 React SPA 中的标签问题
- c# - 如何在 xamarin c# 的列表视图中单独显示符号和价格
- node.js - 生产 React 应用程序因 429 错误而失败
- python - 尝试运行 xgboost.predict 或 xgboost.score 时出现奇怪的错误