`cat`的类似物,用于以不同颜色突出显示不同的匹配项。

14 浏览
0 Comments

`cat`的类似物,用于以不同颜色突出显示不同的匹配项。

我的问题类似于这个:语法高亮/着色的cat。但不完全相同。\n一个能做到这一点的工具将会很棒:\n

    \n

  • 将文件cat出来
  • \n

  • 用颜色cx来高亮显示单词x
  • \n

  • 用颜色cy来高亮显示单词y
  • \n

\n等等。有人知道类似的工具吗?\n


\n这个问题的“真实动机”是:我有一个日志文件(例如由log4cxx生成),我想用一种颜色来突出显示DEBUG,用另一种颜色来突出显示ERROR,用第三种颜色来突出显示WARN,等等。\n基本上,我想要实现的是:如何设置log4cxx的控制台输出颜色?\n我考虑过将catgrep(带有自定义颜色)结合起来。但如果有外部工具可以完成这个工作,那也可以。\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

0
0 Comments

在上述链接中,提供了一个用于命令行参数中接受颜色和模式的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脚本进行处理。脚本会根据命令行参数中指定的颜色和模式来对文本进行高亮显示。这个工具的出现是为了满足用户对于高亮显示匹配文本的需求。

0
0 Comments

这段内容中提到了一个问题,即如何使用类似`cat`命令的方式来对不同的匹配项进行不同颜色的高亮显示。解决这个问题的方法是使用`nawk`命令来实现。

解决方法的具体步骤如下:

1. 在`BEGIN`部分定义一个关联数组`arr`,用于存储需要匹配的模式及其对应的颜色。

2. 对于每一行,将其存储在变量`l`中。

3. 遍历数组`arr`,对于每一个模式,使用`gsub`函数将其替换为带有相应颜色代码的字符串。

4. 打印处理后的行。

这段内容还提到了一些其他的说明:

- 配置部分需要根据实际情况进行调整,以匹配所需的样式。

- 可以使用`tail -f`命令代替`cat`命令,以实现实时显示日志文件的功能。

- 作者认为没有专门的工具可以实现这样的功能,因为这个问题并不复杂。

- 最后,作者表示对于回答晚了表示抱歉,并希望这个解决方法对读者有用。

这段内容主要介绍了如何使用`nawk`命令实现类似`cat`命令的功能来对不同的匹配项进行不同颜色的高亮显示,并提供了具体的解决方法和一些其他的说明。

0