如何使用 less、ccze、grep 构建可滚动、彩色的系统日志查看器?

如何使用 less、ccze、grep 构建可滚动、彩色的系统日志查看器?

我想查看带有彩色输出、可滚动且可搜索的日志文件。我该怎么做?

我试过了less /var/log/syslog | ccze | grep error,但它不可滚动。

答案1

这是因为你的操作方式错误。它是less可滚动的,因此它必须是管道中的最后一个命令:

grep error /var/log/syslog | ccze -A | less -R

使用的选项是:

-A, --raw-ansi

如果想要启用原始 ANSI 颜色序列而不是使用 curses,则此选项就可以实现。

这使得ccze利用ANSI 颜色代码代替詛咒。虽然less可以使用-R选项处理 ANSI 转义(见下文),但诅咒问题更严重。使用-A选项ccze巧妙地避开了这个问题。

-R 或 --RAW-CONTROL-CHARS 与 -r 类似,但只有 ANSI“颜色”转义序列以“原始”形式输出。与 -r 不同,在大多数情况下屏幕外观都能正确保持。ANSI“颜色”转义序列是以下形式的序列:

ESC [ ... 米

其中“...”是零个或多个颜色指定字符。为了跟踪屏幕外观,ANSI 颜色转义序列被假定不会移动光标。通过将环境变量 LESSANSIENDCHARS 设置为可以结束颜色转义序列的字符列表,您可以让 Less 认为除“m”之外的其他字符可以结束 ANSI 颜色转义序列。通过将环境变量 LESSANSIMIDCHARS 设置为可以出现的字符列表,您可以让 Less 认为除标准字符之外的其他字符可能出现在 ESC 和 m 之间。

相关内容