多くのプログラムがカラーを使用していることは知っています (vim、ack、color-ls など) が、それでも白黒でしか表示できない場合がまだ多くあります。
正規表現に基づいて出力を色分けするスクリプト(つまり、「'dog' に一致するものをすべて赤にする」)がありますが、これらはパイプを使用して呼び出す必要があります。たとえば、「> cat myfile | color dog red」などです。これは対話型の処理には役に立ちません。
私が探しているのは、ターミナル エミュレータ (または実際にこれを行うターミナル) をフックし、現在使用しているシェルやプログラムとは関係なく、特定の正規表現に一致するものをすべて色付けするものです。これが ncurses でも機能すれば素晴らしいと思います。モノクロのプログラムが多すぎるので、キーワードのリストを指定して、表示または入力されたときに強調表示/色付けできれば素晴らしいと思います。
私はおそらく GNOME ターミナルを使用する Guake コンソールを使用していますが、GNOME にこの機能がすでに備わっているかどうかはわかりません。
答え1
短縮版は次のとおりです:はい、他のプログラムと同様に、シェルからの出力をパイプすることができます。
そこから好きなものを使うことができます。
$ bash | sed "$(echo -e "s@dog@\e[31mdog\e[0m@g; s@more here@more here@g;")"
私の「虹」を追加しようと思いました。お楽しみください:
for((b=0;$b<8;b++)); do echo -ne "\e[4${b}m4$b : "; \
for((f=0;$f<8;f++)); do echo -ne "\e[3${f}m3${f}"; done; echo -e "\e[0m"; done
答え2
私はまだこの機能を備えた Linux ターミナル エミュレーターを探していますが、これを読んでいて macOS X を使っている人のために:
- 得るiTerm2(OS X で多くのコマンド ライン作業を行っている場合は、いずれにしてもこれが必要になります)、「設定 > プロファイル > 詳細」に移動し、「トリガー」の下の「編集」をクリックします。そこで、次のような正規表現を使用してトリガーを追加し
^.*\[ERROR\].*$
、アクションを「テキストの強調表示」に設定し、パラメーターを「赤色の前景」などに設定できます。
答え3
おそらくこれよりも良い解決策があるでしょうが、expect を使えば簡単な解決策が見つかるかもしれません:翻訳:http://expect.nist.gov/TCL を避けたい場合は、他の多くのプログラミング/スクリプト言語用の expect ライブラリが利用可能です。
一般的に、TCL は対話型プログラムを自動化するために使用されますが、対話型にすることも可能です。
最初にいくつかのコードを提供しますが、私自身はしばらく使用していません。
答え4
KDE Konsole (少なくとも KDE3 バージョン) ではこれが実行できると確信していますが、KDE4 ではサポートされていないようです。
あなたできるgrep を使って次のように操作します。
grep -C 99999 --color <whatever>
これにより、一致が強調表示されますが、ファイル全体に相当するほど多くのコンテキストが含まれます。