在终端中突出显示一个单词 *always*

scr*_*avy 9 linux-terminal terminal-emulator

是否有用于 linux/unix 的终端模拟器(如 GNOME 终端),它允许始终突出显示单个单词(例如“以红色突出显示 FAIL”)?或者,是否有适用于 GNOME 终端的插件(如果存在诸如“gnome 终端插件”之类的东西)。

无论终端内正在运行什么应用程序,解决方案都应突出显示该词,即 runningcat test.txt应突出显示该词以及make all

任何帮助都被我睡眼惺忪的眼睛所感激。

jfg*_*956 12

使用 bash,您可以使用以下命令以红色突出显示所有单词“FAIL”:

txtred=$(echo -e '\e[0;31m')
txtrst=$(echo -e '\e[0m')
bash | sed -e "s/FAIL/${txtred}FAIL${txtrst}/g"
Run Code Online (Sandbox Code Playgroud)

它所做的是创建一个新的 bash shell 并使用sed. 如果您想结束标准输出版本,只需键入exit即可返回到之前的 shell。您可以在此处找到更多颜色命令。该echo -e变化是需要得到真正的转义值\e

我试了一下echo,并cat在这个子shell和它工作。但是,它破坏了期望终端作为其输出的程序,例如vi. 我猜它也会使用特殊的输出缓冲来破坏程序。它还破坏命令echo -n FAIL和更改命令的行为,例如ls(当输出是终端时,ls 每行打印多个文件,当输出是管道时每行打印一个文件)。