tail -f logfile.log | perl -pe 's/.*foo*/\e[1;41m$&\e[0m/g'
「foo」パターンを含むlogfile.logファイルのすべての行は色で表示されます。
ライン全体ではなく正確なパターンを強調するにはどうすればよいですか?
echo "WARN ERROR foo"|sed 's#WARN#\x1b[33m&#; s#ERROR#\x1b[31m&#; s#foo#\x1b[32m&#'
私の言葉は、私がこのようなことをしたいとしたらどうしますか?
ベストアンサー1
sed
まず、Perlを次&
のように変更して使用できます$&
。
echo "WARN ERROR foo" |
perl -pe 's#WARN#\x1b[33m$&#; s#ERROR#\x1b[31m$&#; s#foo#\x1b[32m$&#'
または、元のPerlアプローチを使用して.*
一致させたいパターンの側面を削除するだけです。
tail -f logfile.log | perl -pe 's/foo/\e[1;41m$&\e[0m/g'
より一般的なアプローチのために、私が投稿した小さなスクリプトを使うことができます。私の答えはここにあります。このアプリを使用すると、それぞれ異なる色で最大10パターンを塗りつぶすことができます。たとえば、単語、およびを大文字ERROR
と小文字を区別せずに異なる色で指定するには、次のようにします。WARNING
foo
tail -f logfile.log | color.pl -il "error,warning,foo"