2017-04-06 11 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

ERRORを含む各行に対して

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

が、それは

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

関連する問題