前回書いた「任意の文字列を含む行を色付けして出力するシェルコマンド」を簡単に扱えるように、Go言語の練習も兼ねて、任意の文字列やそれを含む行をハイライトするコマンドラインツールをGo言語で作成してみた。
作成したコマンドは https://github.com/x-color/hlt にMITライセンスで置いてくので、ご自由にお使いください。インストール方法などは、リンク先に書いてあります。
実装されている機能
今の所、実装されている機能は
- 任意の文字列のハイライト
- 任意の文字列を含む行のハイライト
- ハイライトする色の指定
- ハイライトする場所(文字、背景)の指定
- ハイライト時の書体の指定(太字、斜体など)
- 任意の文字列を含む行と前後の行のハイライト
使い方
ここに書いているのは簡単な使い方なので、詳しい使い方が知りたい場合は https://github.com/x-color/hlt のREADMEに書いてあるので、そちらを参照してください。
任意の文字列のハイライト
file.txt
内からtext
という文字列をハイライトして出力する
# 直接'file.txt'を指定する
$ hlt word text file.txt
# 標準入力から'file.txt'を入力する
$ cat file.txt | hlt word text
ハイライトする色の変更
# 文字をハイライトする色を変更する。この例は赤色を指定
$ cat file.txt | hlt word -c red text
# 文字の背景をハイライトする色を変更する。この例は赤色を指定
$ cat file.txt | hlt word -b red text
任意の文字列を含む行のハイライト
file.txt
内からtext
という文字列を含む行をハイライトして出力する
# 直接'file.txt'を指定する
$ hlt line text file.txt
# 標準入力から'file.txt'を入力する
$ cat file.txt | hlt line text
ハイライトする色の変更
# 文字をハイライトする色を変更する。この例は青色を指定
$ cat file.txt | hlt line -c blue text
# 文字の背景をハイライトする色を変更する。この例は青色を指定
$ cat file.txt | hlt line -b blue text
ハイライト時の書体の指定
# 太字にする
$ cat file.txt | hlt word -B text
# 斜体にする
$ cat file.txt | hlt word -I text
# 取り消し線を引く
$ cat file.txt | hlt word -S text
# 下線を引く
$ cat file.txt | hlt word -U text
指定された行のハイライト
file2.txt
内の3〜6行目をハイライトして出力する
# 直接'file.txt'を指定する
$ hlt linen 3~6 file.txt
# 標準入力から'file.txt'を入力する
$ cat file.txt | hlt linen 3~6
file2.txt
内の3,6行目と10行目以降をハイライトして出力する
# 複数条件はカンマで区切って記述
$ cat file.txt | hlt linen 3,6,10~
file2.txt
内の偶奇数行目をハイライトして出力する
# 偶数行目を指定 (even)
$ cat file.txt | hlt linen even
# 奇数行目を指定 (odd)
$ cat file.txt | hlt linen odd
おわりに
今後も少しづつ機能を追加していく予定。今の所、以下の機能を考えている。
-
色の指定を数字以外に実装完了red
,blue
などの文字列で指定する機能 -
書体の変更機能実装完了 -
指定文字列を含む行の前後をまとめてハイライトする機能実装完了 -
指定行をハイライトする機能実装完了 - 同時に複数箇所を様々な色でハイライトする機能