当我在bash中得到输出时,我得到了标准的2色屏幕。有没有什么方法可以在默认情况下,突出显示一行,如果它包含一些关键文本输出?
例如,如果它包含单词“FAIL”,则该行被标记为红色。
我读过这篇https://unix.stackexchange.com/questions/46562/how-do-you-colorize-only-some-keywords-for-a-bash-script,但我想找一些比写一个 Package 器脚本更简单的东西,我不可避免地要在将来的某个时候调试它。
当我在bash中得到输出时,我得到了标准的2色屏幕。有没有什么方法可以在默认情况下,突出显示一行,如果它包含一些关键文本输出?
例如,如果它包含单词“FAIL”,则该行被标记为红色。
我读过这篇https://unix.stackexchange.com/questions/46562/how-do-you-colorize-only-some-keywords-for-a-bash-script,但我想找一些比写一个 Package 器脚本更简单的东西,我不可避免地要在将来的某个时候调试它。
5条答案
按热度按时间pnwntuvh1#
作为一个简单的解决方法,通过
grep --color
将其管道化以将某些单词变为红色。添加像
^
这样的回退来打印不包含任何匹配项的行。Grep output with multiple Colors?描述了一种获取多种颜色的方法,如果你需要的话。
zbdgwd5y2#
如果您愿意安装BASH脚本和
ack
,hhlighter
软件包具有有用的默认颜色和简单的界面https://github.com/paoloantinori/hhighlighter:你可以这样使用它来突出显示以
FAIL
开头的行:或者包含
FAIL
:或用于各种常见日志条目:
f3temu5u3#
基于tripleee的答案,以下命令将突出显示匹配的行红色并保留其他行:
如果你更喜欢完全反转的行,用gnu grep:
(更新了mklement0反馈)
9rygscc14#
这将不仅突出一个词,而是整行:
搜索短语应在两侧用
.*
括起来。它会在搜索词或短语之前和之后突出显示。引用
6ioyuze25#
在.profile或.bashrc中添加以下行:
然后,* 你可以输入这样的内容:
或