如何从所有命令突出显示终端上的某些单词

时间:2017-10-05 10:38:27

标签: linux bash unix colors

我需要突出显示某些关键字,例如"失败,失败,错误,致命,缺失"在我的终端上。

我需要输出所有命令,而不是任何特定命令。我假设我需要调整我的bashrc文件。

我可以使用颜色:

<input coming to terminal>|grep -P --color=auto 'fail|failed|error|fatal|missing|$'

我尝试了以下命令,但没有帮助:

tail -f $(tty) |grep -P --color=auto 'fail|failed|error|fatal|missing|$' &
[1]+  Stopped(SIGTTIN)        tail -f $(tty) | grep -P --color=auto 'fail|failed|error|fatal|missing|$' 

搜索SO以寻找答案,但未找到任何提供所需答案的问题。

1 个答案:

答案 0 :(得分:2)

我不认为使用shell实现这一目标真的很优雅。理想情况下,您可以使用这种内置关键字突出显示的终端仿真器。您可以通过将bash的输出通过添加ANSI颜色转义的过滤器来管理一些方法。这是一个sed脚本,取代&#34;失败&#34; (红色)失败(正常):

s/fail/\x1B[31m&\x1B[0m/
t done

:done

运行bash,其输出通过sed传输,如下所示:

$bash | sed -f color.sed

这种机制并非没有问题,但在某些情况下可行。通常,最好只收集所需的输出,然后通过sed进行管道处理,而不是直接使用bash输出。