我想查看带有彩色输出、可滚动且可搜索的日志文件。我该怎么做?
我试过了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 之间。