2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

tailコマンドとかでも強調表示する自作コマンド

Last updated at Posted at 2022-05-27

とりあえずこれで!って書いただけなんで、処理速度とか気になる人いたら改善案くださいな!

結論

結論から書くよ!

highlight=""
i=0
for I; do
  i=`expr $i + 1`
  highlight+="-e s@\(${I}\)@\x1b[1;3${i}m\1\x1b[0m@g "
done
sed $highlight

このスクリプトを/usr/local/bin/hlとかに置いて、
実行権限を与えて(chmod +x /usr/local/bin/hl)、
こんな風に使う# tail -f /var/log/hoge.log | hl INFO DEBUG
するとこうなる。

image.png

説明

ざっくり説明すると、以下です。

hl という名前

強調表示!→ high light 略称で hlにした!好きな名前にしたらいいよ!

\x1b[1;3${i}m\1\x1b[0m という呪文

\x1b => ESCを指す
\x1b[ => ESC[ => 画面出力の制御 CSIシーケンスと呼ばれています。
1; => セミコロンで複数命令可能で、1;は太字を指します。
3${i}m => 3${i}は31,32...となりますが、3は文字色を指定するよ。そのあとは色指定です。mは命令の終了。
\1 => sedでHITした文字列が入る。
\xib[0m => ESC[0m => 画面出力の制御命令0、つまり終了を意味する。

繋げるとこういう呪文です。
「画面出力制御の命令を告げる!出力は太字にせよ!文字色は1個目は赤っぽく、2個目は緑っぽく...!命令は以上!
とりま送られてきた文字列を出力せよ!さっき言った命令はここで終了とする!」

色とか強調表示の参考は以下とかみてね。自由にカスタマイズしちゃってくださいね!
参考URL: https://www.serendip.ws/archives/4635

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?