当我在终端uptime
上发出命令时,它返回:
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) }'
要同时删除逗号而不是使用tr
创建另一个子外壳,您可以执行以下操作:
uptime | awk '{ gsub(/,/,""); print $(NF - 2) }'
如果您有任何其他问题,请告诉我。
这样,您就不必担心uptime
问题。
cat /proc/loadavg|awk '{print $1,$2,$3}'
另一个带有rev
的命令,因为rev
很有趣:
uptime | rev | cut -d , -f 3 | rev
如果只是按逗号拆分,字段数可能会有所不同,但如果先按冒号拆分,然后再按逗号拆分,则您感兴趣的数字是最后一组中的第一个字段:
uptime | cut -d : -f 5 | cut -d , -f 1