比如 sar 命令的默认输出是这样:
02:20:40 PM CPU %user %nice %system %iowait %steal %idle
02:30:40 PM all 3.67 0.00 0.96 0.00 0.00 95.36
02:40:40 PM all 4.27 0.00 1.40 0.01 0.00 94.32
02:50:40 PM all 2.34 0.00 0.85 0.00 0.00 96.80
我想格式化成这样:
%user %nice %system %iowait %steal %idle
3.67 0.00 0.96 0.00 0.00 95.36
4.27 0.00 1.40 0.01 0.00 94.32
2.34 0.00 0.85 0.00 0.00 96.80
也就是不要每行开头的时间以及 cpu 那一列,而且要能支持间隔一定时间持续输出的那种使用方式。
1
singerll 2022-09-21 19:21:34 +08:00
sudo sar -u 1 1|grep -v "Linux" | awk '{print $3,$4,$5,$6}'
|
2
qemu32 OP |
3
singerll 2022-09-21 19:31:42 +08:00
输出格式不可能乱吧,我这里没一点问题,至于输出一次就退出,加个循环就行
|
4
qemu32 OP @singerll 列与列之间的分隔变成了只有一个空格,而且一下输出了 2 行,就算我要自己去循环,也不能循环一次输出 2 行啊。
|
5
qemu32 OP @singerll 这条命令可以满足我的需求:
while :; do S_COLORS=never sar 1 1 | grep -v "^Linux" | grep -v "^Average" | grep -v "CPU" | grep -v "^$" | sed 's/^.*all *//'; done 结贴 |
6
yougg 2022-09-21 21:21:26 +08:00 via Android
sar 1 1 | column -t
|
8
julyclyde 2022-09-22 08:56:22 +08:00
“从 sar 的输出里获得信息”可能是个错误的做法
这东西,我感觉就是给人看的,并不方便给程序解析 |