gpt4 book ai didi

linux - 使用 awk 在不添加新行的情况下将时间添加到 .plot 文件中

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:20:32 27 4
gpt4 key购买 nike

我正在编写一个 shell 脚本,该脚本运行命令 mpstat 和 iostat 以获取 CPU 和磁盘使用情况,从中提取信息并将它们放入 .plot 文件中,以便稍后使用 bargraph.pl 绘制它们。我遇到的麻烦是当我像这样使用 awk 从 mpstat 获取时间时

mpstat | awk 'FNR == 4 {print $1;}' >> CPU_usage.plot 

它会在代码末尾打印一个新行。我尝试使用 printf,因为这适用于我的其他代码行,无需添加新代码行即可获取所需的特定信息,但我不知道如何格式化它。有没有办法用 awk 或我可以用来完成这个的任何其他方法来做到这一点?提前致谢。

当使用命令 mpstat 时,这就是 bash 返回的内容

Linux 3.4.0+ (DESKTOP-JM295S0)  04/30/2017      _x86_64_        (4 CPU)

03:56:43 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:56:43 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

这就是我要完成的工作,将时间、usr、sys 和 idle 放入一个名为 CPU_usage.plot 的文件中。这是我想放入文件中的内容:

03:56:43     0.00     0.00     100.00

我得到的是:

03:56:43
0.00 0.00 100.00

这是我的代码:

mpstat | awk 'FNR == 4 {print $1;}' >> CPU_usage.plot 
mpstat | awk 'FNR == 4 {printf " %f", $4;}' >> CPU_usage.plot
mpstat | awk 'FNR == 4 {printf " %f", $6;}' >> CPU_usage.plot
mpstat | awk 'FNR == 4 {printf " %f\n", $13;}' >> CPU_usage.plot

最佳答案

使用以下awk方法:

mpstat | awk 'NR==4{print $1,$4,$6,$13}' OFS="\t" >> CPU_usage.plot

现在,CPU_usage.plot 文件应包含:

03:56:43    0.00    0.00    100.00

关于linux - 使用 awk 在不添加新行的情况下将时间添加到 .plot 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43710941/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com