`cat`的类似物,用于以不同颜色突出显示不同的匹配项。
`cat`的类似物,用于以不同颜色突出显示不同的匹配项。
我的问题类似于这个:语法高亮/着色的cat。但不完全相同。\n一个能做到这一点的工具将会很棒:\n
- \n
- 将文件
cat
出来 - 用颜色
cx
来高亮显示单词x
- 用颜色
cy
来高亮显示单词y
\n
\n
\n
\n等等。有人知道类似的工具吗?\n
\n这个问题的“真实动机”是:我有一个日志文件(例如由log4cxx
生成),我想用一种颜色来突出显示DEBUG
,用另一种颜色来突出显示ERROR
,用第三种颜色来突出显示WARN
,等等。\n基本上,我想要实现的是:如何设置log4cxx的控制台输出颜色?\n我考虑过将cat
和grep
(带有自定义颜色)结合起来。但如果有外部工具可以完成这个工作,那也可以。\n有什么想法吗?\n
\n编辑:\n谢谢,@sjngm!很好的建议。我稍作修改(现在可以用作alias
,并且整行都会被高亮显示)。我决定将我的修改发布出来,因为这对某些人可能会有用:\n
# 转义字符 ' ------------v; 浅红色 ------vvvv; 红色 ------------vvvv; 黄色 -------vvvvv; 绿色 ---------vvvv; 棕色 ----------vvvv; 深灰色 ------vvvv alias log_color='nawk '"'"'BEGIN { arr["FATAL"] = "1;31"; arr["ERROR"] = "0;31"; arr["WARN"] = "1;33"; arr["INFO"] = "0;32"; arr["DEBUG"] = "0;33"; arr["TRACE"] = "1;30" } { l = $0; for (pattern in arr) { gsub(".*" pattern ".*", "\033[" arr[pattern] "m&\033[0m", l); } print l; }'"'" alias log_error='grep "FATAL\|ERROR\|WARN"'
\n示例用法:\n
$ cat log_file | log_color $ cat log_file | log_error | log_color
在上述链接中,提供了一个用于命令行参数中接受颜色和模式的sed-wrapper,其作用是用不同颜色高亮显示匹配的文本。这个工具可以通过以下方式使用:cat yourfile | colorize.sh red ERROR yellow WARN blue 'user .* logged in'。
根据这个问题的描述,我们可以看到,用户希望能够通过一个工具将匹配的文本以不同的颜色高亮显示。然而,传统的cat命令并不支持这样的功能,因此需要使用到sed-wrapper来实现。
解决方法是使用sed-wrapper工具,并在命令行参数中指定要高亮显示的颜色和模式。具体来说,可以通过将文本通过管道传递给cat命令,然后再使用sed-wrapper工具进行处理,最后将处理后的结果输出。
在上述链接中提供了一个示例的sed-wrapper脚本,可以接受不同的颜色和模式作为命令行参数。使用这个脚本,用户可以将需要高亮显示的颜色和匹配的模式作为参数传递给脚本,并将要处理的文本通过管道传递给cat命令。
这个sed-wrapper脚本的工作原理是通过在匹配的文本前后添加相应的ANSI转义序列来改变文本的颜色。例如,可以使用'\e[31m'来表示红色,'\e[33m'来表示黄色,'\e[34m'来表示蓝色。在匹配的文本前后添加这些转义序列后,就可以实现不同颜色的高亮显示。
总结起来,通过使用sed-wrapper工具,用户可以将匹配的文本以不同的颜色高亮显示。这个工具的使用方法是通过管道将文本传递给cat命令,然后再通过sed-wrapper脚本进行处理。脚本会根据命令行参数中指定的颜色和模式来对文本进行高亮显示。这个工具的出现是为了满足用户对于高亮显示匹配文本的需求。
这段内容中提到了一个问题,即如何使用类似`cat`命令的方式来对不同的匹配项进行不同颜色的高亮显示。解决这个问题的方法是使用`nawk`命令来实现。
解决方法的具体步骤如下:
1. 在`BEGIN`部分定义一个关联数组`arr`,用于存储需要匹配的模式及其对应的颜色。
2. 对于每一行,将其存储在变量`l`中。
3. 遍历数组`arr`,对于每一个模式,使用`gsub`函数将其替换为带有相应颜色代码的字符串。
4. 打印处理后的行。
这段内容还提到了一些其他的说明:
- 配置部分需要根据实际情况进行调整,以匹配所需的样式。
- 可以使用`tail -f`命令代替`cat`命令,以实现实时显示日志文件的功能。
- 作者认为没有专门的工具可以实现这样的功能,因为这个问题并不复杂。
- 最后,作者表示对于回答晚了表示抱歉,并希望这个解决方法对读者有用。
这段内容主要介绍了如何使用`nawk`命令实现类似`cat`命令的功能来对不同的匹配项进行不同颜色的高亮显示,并提供了具体的解决方法和一些其他的说明。