
比如 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 的输出里获得信息”可能是个错误的做法 这东西,我感觉就是给人看的,并不方便给程序解析 |