系统活动报告 (sar) - 如何保留颜色,但禁用额外的标题行?(并少用)

系统活动报告 (sar) - 如何保留颜色,但禁用额外的标题行?(并少用)

如果您sar不带参数运行,则输出为彩色,但每页后会插入额外的页眉。如果您运行,sar | cat则会删除额外的页眉,但颜色也会被删除。

如果您希望通过管道传输到 less,运行的sar | less效果与使用相同cat - 删除了额外的标题,但颜色也删除了。如果您希望使用 保留颜色less,则可以使用unbuffer(作为 的一部分安装expect)和less -R,但随后会再次出现额外的标题。

我相信下面的图片可以更好地显示这一点(额外的标题在图 2 中标记)。

的结果sar | less在此处输入图片描述

的结果unbuffer sar | less -R在此处输入图片描述

那么,是否可以sar使用命令保留颜色less,同时不是每页是否有额外的标题行(如图 2 所示)?

awk我认为使用一些复杂的/ grep/管道(或许是链式命令)可能可以做到这一点sed,但如果可能的话,我更喜欢使用命令本身的更直接的解决方案。这也是因为我想less使用单个命令将结果传输到管道。

我正在使用 Ubuntu Server 22.04。

答案1

我从未使用过sar,但man sar提到sar有一个环境变量,其值控制这种行为:

色彩

默认情况下,当输出连接到终端时,统计信息会以彩色显示。使用此变量可更改设置。此变量的可能值为 never、always 或 auto(后者相当于默认设置)。

有各种工具可以根据它们是通过管道传输到某个东西还是只是打印到终端来更改其输出,许多工具都有一个always选项来确保无论如何都会使用颜色。例如,查看和--color的选项。它看起来正在使用环境变量来做同样的事情,所以试试这个:greplssar

S_COLORS=always sar | less -R

-R选项less允许保留通过管道传输的文本中的颜色和超链接。

相关内容