2017-04-06 68 views
0

未找到简要说明。高亮显示恒定基准线

我在终端输出:

[2017-04-06 21:12:28,946] [DEBUG] utils.py:106 [farm.utils] - Collection 
[2017-04-06 21:12:28,946] [DEBUG] utils.py:108 [farm.utils] - Inserting content to collection 
[2017-04-06 21:11:29,699] [ERROR] utils.py:117 [farm.utils] - Unexpected error during insertion. 

而且我希望每次出现的时间要突出一行ERROR

我该怎么做?

回答

0

可以通过管道通过该命令文件:

sed '/ERROR/s/\(.*\)/'"$(tput setaf 1)"'\1'"$(tput sgr0)"'/' infile 

对于含有ERROR的每一行,它把的

tput setaf 1 

的输出(端子逃逸代码,通常, “红色”)在该行的开始和

tput sgr0 

输出在第(复位颜色逃逸)行结束。

这些看起来大致是这样的:

[[31m[2017-04-06 21:11:29,699] [ERROR] utils.py:117 [farm.utils] - Unexpected error during insertion.^[(B^[[m 

和解释,希望像您的寻呼机可能必须配置正确解释转义序列

enter image description here

通知;例如,对于less,您需要-R选项。

+0

你在说管道.bash_profile吗? 它引发错误:'sed:infile:没有这样的文件或目录' – Snobby

+0

@Snobby啊,对不起,'infile'只是我用于输入文件的名称。您必须改用日志文件的名称,或者如果要在管道中使用该命令,则必须完全跳过它:'command_that_produces_log | sed'/ ERROR/...'' –

+0

ehrmm,这不完全是事情。我想知道如果我可以定义一次,所有更多的输出将被突出显示。在你的例子中,我需要键入'command_that_produces_log |每次我需要这个突出显示时,sed'/ ERROR/...'',这并不是那么有趣。 – Snobby