如何为 grep 输出着色

如何为 grep 输出着色

当我输入

memcached -vv 2>&1 | grep --color=always "SET\|GET"

我获得了很好的 memcached 统计数据

获取 AR-City-1

获取剩余部分-241

设置 rest-part-241 的值 len 为 685

获取主休息列表-1

GET将其通过管道传输到某个地方并用绿色代替默认的红色,这样就很棒了。

我怎能这样做?

答案1

这可能可以写得更短,但解决方案给出的结果是:

memcached -vv 2>&1 | sed -e "s/^GET.*$/\x1b[31m&\x1b[0m/" | sed -e "s/^SET.*$/\x1b[32m&\x1b[0m/"

或者如果您希望使用背景色而不是前景色:

memcached -vv 2>&1 | sed -e "s/^GET.*$/\x1b[41m&\x1b[0m/" | sed -e "s/^SET.*$/\x1b[42m&\x1b[0m/"

因此 GET 为绿色,SET 为红色。

答案2

对于 gnu grep 这将起作用:

$ export GREP_COLOR="01;32"

其中“01”表示:粗体,“32”表示绿色。默认值为“01:31”(粗体红色)。其他颜色:

  • 31:红色
  • 32:绿色
  • 33:黄色
  • 34:蓝色
  • 35:紫色

这些颜色可能根据您的终端配置方式而有所不同,但上面的颜色是标准颜色。

如果

$ env | grep GREP_COLORS

给出结果,这些设置取代了 GREP_COLOR 设置(注意“S”),请参阅 grep manage 以获取使用 GREP_COLORS 的更详细设置。

答案3

尝试 基于 egrep 的文本高亮器:)

答案4

另一个基于 ack-grep 的替代文本着色器:

https://github.com/paoloantinori/hhighlighter

相关内容