awk - 如何在正常运行时间的输出中从右开始读取一行?
问题描述
当我在终端上发出命令时uptime
,它会返回:
13:21:52 到 13:02,3 个用户,平均负载:1.10、1.09、0.96
然后,我想使用以下方法打印字段 8、9、10 的负载平均值:
uptime | awk '{print $8}' | tr -d ","
那么结果将是:1.10
但是,有时,当电脑运行超过一天时,它会返回:
13:22:12 上升 6 天,19:50,3 个用户,平均负载:1.10、1.09、0.96
如您所见,字段列数不是固定的。我不想手动编辑要打印的字段编号。所以,我想从右边开始阅读这条线。这样,0.96 将是字段 0,1.09 将是字段 1,依此类推。我不在乎左侧附近的值。
解决方案
您只需调用awk
. 基本调用是:
uptime | awk '{ print $(NF - 2) }'
要同时摆脱逗号而不是创建另一个子shell tr
,您可以这样做:
uptime | awk '{ gsub(/,/,""); print $(NF - 2) }'
如果您还有其他问题,请告诉我。
推荐阅读
- android - Firebase实时数据库写入崩溃android应用程序
- spring - 使用 Spring WebSocket 操作 CONNECTED 框架
- time-complexity - 是否可以通过简化常数来解决给定的时间复杂度?
- python - 如何在 python-docx 中将图片添加到页眉/页脚
- python-3.x - 如何在此正则表达式中仅排除数字?
- android - 检查本地是否存在 Firestore 文档
- ffmpeg - 无效的 PNG 签名 0xFFD8FFE000104A46。解码流 #0:0 时出错:处理输入时发现无效数据
- vim - FileType 的 Vim autocmd 不能间接工作
- powershell - 从 CSV 文件将随机用户添加到组
- linux - 运行 ps -Af 时出现可疑进程