如何根据搜索按需跟踪并对结果进行着色

如何根据搜索按需跟踪并对结果进行着色

您好,我有一个包含大量信息的日志文件,很难找到我要查找的内容,因此我使用此命令仅显示我想在日志中看到的内容,它将充当侦听器当模式匹配时只显示搜索结果

tail -f file.log | GREP_COLOR='01;36' egrep --color=always "\"stringOneExample\""

并且工作正常,问题是如果我管道另一个 grep

tail -f file.log | GREP_COLOR='01;36' egrep --color=always "\"jsonKeyOne\"" | GREP_COLOR='01;31' egrep --color=always "\"jsonKeyTwo\""

我认为不起作用,因为当我通过管道将一个连接到另一个时,因为第一个结果不包含第二个条件,所以没有显示任何内容,所以我想对所有文件进行两个(或多个)grep 操作,然后给出每根绳子都有不同的颜色,以便更容易发现差异

注意如果我在末尾添加 :|$ ,它将充当常规尾部并向我显示许多不是我想要的额外信息

 tail -f file.log | GREP_COLOR='01;36' egrep --color=always "\"stringOneExample\":|$"

答案1

最好使用:

grep -e 'jsonKeyOne' -e 'jsonKeyTwo'

...按照 OR 您的条件。根据您的 grep 风格, -E 'jsonKeyOne|jsonKeyTwo' 也是可能的。这是最快的选项,仅包含条款。

不同颜色的工作方式如下:第一个术语仅着色,所有其他线条未着色,下一个术语具有不同颜色和所有其他线条……直到最后一个术语具有其颜色和所有其他线条。

grep 或语法高亮,最好不要同时使用。

相关内容